Page MenuHomePhabricator
Feed Advanced Search

Jul 24 2017

v.g.vassilev added a reviewer for D33657: Allow libraries to be loaded with RTLD_LOCAL on Unix.: lhames.

This LGTM but I'd like to hear from @lhames.

Jul 24 2017, 2:02 PM

Jul 22 2017

v.g.vassilev added a comment to D34444: Teach codegen to work in incremental processing mode..

@rjmccall, thanks for the prompt and thorough reply.

Okay. In that case, I see two problems, one major and one potentially major.

This is a very accurate diagnosis which took us 5 years to discover on an empirical basis ;)

You could've asked at any time. :)

True. I am not really sure I knew what to ask, though ;)

We're open to general "I'm trying to do this and having problems" questions on the mailing lists. You probably would've needed to know to CC me specifically, though; sadly, I can't keep up with all the lists I need to.

Good to know. Thanks! I will come back to you once I get rid of our O(100) clang patches to discuss what would be the best way of supporting incremental compilation.

That's quite brittle, because that code is only executed in a code path that only you are using, and you're not adding any tests. I would greatly prefer a change to IRGen's core assumptions, as suggested.

I am open to changing this code as well. That should probably be another review.

I agree. Are you comfortable with blocking this review until that lands? It seems like it would significantly change this.

Jul 22 2017, 12:16 AM

Jul 18 2017

v.g.vassilev added a comment to D34444: Teach codegen to work in incremental processing mode..

@rjmccall, thanks for the prompt and thorough reply.

Okay. In that case, I see two problems, one major and one potentially major.

This is a very accurate diagnosis which took us 5 years to discover on an empirical basis ;)

You could've asked at any time. :)

Jul 18 2017, 5:51 AM
v.g.vassilev accepted D35536: Don't set TUScope to null when generating a module in incremental processing mode..

I think we can rely on a post-commit review here. LGTM!

Jul 18 2017, 5:40 AM
v.g.vassilev accepted D35527: [CMake] Move CLANG_ENABLE_(ARCMT|OBJC_REWRITER|STATIC_ANALYZER) into clang/Config/config.h..

LGTM!

Jul 18 2017, 12:44 AM

Jul 9 2017

v.g.vassilev updated the diff for D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.

Remove accidentally added change in SemaDecl.cpp

Jul 9 2017, 8:45 AM
v.g.vassilev updated the diff for D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.

Compute only once if there is a non-deleted move or copy constructor and store them in the DefinitionData of the CXXRecordDecl.

Jul 9 2017, 8:29 AM
v.g.vassilev accepted D33529: Allow clients to specify search order of DynamicLibraries..

@marsupial, thanks for this. With a little tweaking I can say it fixes our use case.

Jul 9 2017, 6:13 AM

Jul 6 2017

v.g.vassilev added a comment to D33657: Allow libraries to be loaded with RTLD_LOCAL on Unix..

I meant to reference D30107 instead of D33529, sorry.

Jul 6 2017, 11:42 PM
v.g.vassilev added a comment to D33275: Keep into account if files were virtual..

@rsmith suggested to move this one interface layer down, that is ContentCache::getBuffer. Moving it there might fix more issues. I will try to improve it and land the new version if that's not urgent for you.

Jul 6 2017, 3:01 PM
v.g.vassilev added a comment to D33657: Allow libraries to be loaded with RTLD_LOCAL on Unix..

In other words D33529 broke the cases where we dlopen with RTLD_LOCAL (like cling and ROOT) and this should fix it.

Jul 6 2017, 2:37 PM
v.g.vassilev created D35056: GCC ABI incompatibility when passing object with trivial copy ctor, trivial dtor, and non-trivial move ctor.
Jul 6 2017, 7:24 AM

Jul 5 2017

v.g.vassilev added a comment to D33657: Allow libraries to be loaded with RTLD_LOCAL on Unix..

This patch doesn't apply for me on top of D33529.

Jul 5 2017, 2:36 PM
v.g.vassilev accepted D34927: [Bash-autocompletion] Fix a bug that -foo=bar doesn't handled properly.

LGTM.

Jul 5 2017, 2:01 PM

Jul 4 2017

v.g.vassilev added a comment to D34985: Do not read the file to determine its name..

The test case could be shared from PR33688:

Jul 4 2017, 7:58 AM
v.g.vassilev created D34985: Do not read the file to determine its name..
Jul 4 2017, 7:57 AM
v.g.vassilev updated subscribers of D34984: Store token literal data in PCH. Avoids disk read on PreProc expansion..

What would be the best way to test this. Shall we put:

Jul 4 2017, 7:43 AM
v.g.vassilev created D34984: Store token literal data in PCH. Avoids disk read on PreProc expansion..
Jul 4 2017, 7:42 AM
v.g.vassilev added a comment to D34444: Teach codegen to work in incremental processing mode..

ping...

Jul 4 2017, 7:15 AM
v.g.vassilev updated the diff for D34912: Handle cases where the value is too large to fit into the underlying type..

Add test case.

Jul 4 2017, 7:13 AM

Jul 1 2017

v.g.vassilev closed D34510: Teach clang how to merge typedef over anonymous structs in C mode..

Landed in r306964.

Jul 1 2017, 1:45 PM
v.g.vassilev accepted D34924: [Bash-autocompletion] Add support for older bash version..

It looks like this works with bash 3.2. I've tested this on mac and it works well.

Jul 1 2017, 8:55 AM
v.g.vassilev accepted D34925: [Bash-completion] Fixed a bug that ~ doesn't expanded to $HOME.

That fixes my issue. LGTM.

Jul 1 2017, 8:54 AM

Jun 30 2017

v.g.vassilev added a comment to D34891: Replace assert(0) with llvm_unreachable..

Sure, I can do this, as long as this semantic change is ok.

Jun 30 2017, 3:37 PM
v.g.vassilev added a comment to D34891: Replace assert(0) with llvm_unreachable..

Ok, thanks! I was hesitant for the changes in libclang, because of the return statements.

Jun 30 2017, 3:26 PM
v.g.vassilev planned changes to D34912: Handle cases where the value is too large to fit into the underlying type..

Waiting for @karies for a test case.

Jun 30 2017, 3:00 PM
v.g.vassilev created D34912: Handle cases where the value is too large to fit into the underlying type..
Jun 30 2017, 2:59 PM
v.g.vassilev created D34891: Replace assert(0) with llvm_unreachable..
Jun 30 2017, 9:17 AM

Jun 29 2017

v.g.vassilev updated subscribers of D34444: Teach codegen to work in incremental processing mode..

@rjmccall, thanks for the prompt and thorough reply.

Jun 29 2017, 6:59 AM
v.g.vassilev added a comment to D34510: Teach clang how to merge typedef over anonymous structs in C mode..

@bruno ping...

Jun 29 2017, 5:46 AM

Jun 28 2017

v.g.vassilev accepted D34761: [Bash-autocompletion] Invoke clang where user called.

LGTM.

Jun 28 2017, 9:26 AM

Jun 27 2017

v.g.vassilev added a comment to D34444: Teach codegen to work in incremental processing mode..

We use them as separate translation units due to the fact that we need to survive multiple calls to HandleEndOfTranslationUnit. This 'finalizes' the module, and we cannot write to it anymore. Even though we could write to it (this was the case when we were using the old JIT), with the orc infrastructure we generate machine code for the whole module.

Jun 27 2017, 1:20 PM
v.g.vassilev added a comment to D34473: [LV] Changing the interface of ValueMap.

Hey, it looks like this broke our modules builds (http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/6937/steps/compile.llvm.stage2/logs/stdio) Do you have an idea what might be going on?

Jun 27 2017, 1:34 AM

Jun 22 2017

v.g.vassilev updated the diff for D34059: Get the file name for the symbol from the Module, not the SourceManager..

Update test file comment.

Jun 22 2017, 7:19 AM
v.g.vassilev updated the diff for D34059: Get the file name for the symbol from the Module, not the SourceManager..

Add a test case.

Jun 22 2017, 6:28 AM
v.g.vassilev updated the diff for D34444: Teach codegen to work in incremental processing mode..

Bring back the initial state of this patch. I accidentally uploaded a wrong patch here, instead of its dependee...

Jun 22 2017, 6:27 AM
v.g.vassilev created D34510: Teach clang how to merge typedef over anonymous structs in C mode..
Jun 22 2017, 5:57 AM
v.g.vassilev updated the diff for D34444: Teach codegen to work in incremental processing mode..

Add a test.

Jun 22 2017, 5:22 AM

Jun 21 2017

v.g.vassilev added a child revision for D34444: Teach codegen to work in incremental processing mode.: D34059: Get the file name for the symbol from the Module, not the SourceManager..
Jun 21 2017, 5:20 AM
v.g.vassilev added a parent revision for D34059: Get the file name for the symbol from the Module, not the SourceManager.: D34444: Teach codegen to work in incremental processing mode..
Jun 21 2017, 5:20 AM
v.g.vassilev updated the diff for D34444: Teach codegen to work in incremental processing mode..

Fix compilation issue.

Jun 21 2017, 5:19 AM
v.g.vassilev created D34444: Teach codegen to work in incremental processing mode..
Jun 21 2017, 5:18 AM

Jun 20 2017

v.g.vassilev closed D31187: Fix removal of out-of-line definitions..

Landed in r305799. I would like to test it and I think that should be possible as soon as I land some interpreter infrastructure which is on my TODO list.

Jun 20 2017, 8:01 AM
v.g.vassilev closed D33466: Fix file permissions.

Landed in r305795.

Jun 20 2017, 7:21 AM
v.g.vassilev added a comment to D33468: Enable unicode output on terminals..

@karies ping...

Jun 20 2017, 5:45 AM

Jun 19 2017

v.g.vassilev added a comment to D33529: Allow clients to specify search order of DynamicLibraries..

Currently I am busy with other things and I would be able to test this beginning on July when I plan to upgrade LLVM again. Sorry...

Jun 19 2017, 8:36 AM
v.g.vassilev added a reviewer for D34329: [clang-diff] Initial implementation.: teemperor.
Jun 19 2017, 2:46 AM
v.g.vassilev accepted D33383: [GSoC] Flag value completion for clang.

LGTM. My comments can be addressed in a separate patch.

Jun 19 2017, 2:40 AM
v.g.vassilev added inline comments to D31320: [analyzer] Teach CloneDetection about Qt Meta-Object Compiler.
Jun 19 2017, 1:03 AM

Jun 16 2017

v.g.vassilev added inline comments to D33383: [GSoC] Flag value completion for clang.
Jun 16 2017, 9:11 AM

Jun 15 2017

v.g.vassilev added a comment to D29951: Load lazily the template specialization in multi-module setups..

Reverted in r305460 because broke libcxx modules builds.

Jun 15 2017, 4:12 AM
v.g.vassilev added a comment to D31320: [analyzer] Teach CloneDetection about Qt Meta-Object Compiler.

I agree with Raphael. If you need to have more fine grained control over the translation unit (TU) I think we can have suppressing false positives via comments (@NoQ would know more).

Jun 15 2017, 3:13 AM

Jun 14 2017

v.g.vassilev added inline comments to D34182: [analyzer] Performance optimizations for the CloneChecker.
Jun 14 2017, 1:22 AM

Jun 13 2017

v.g.vassilev abandoned D33444: Fix an issue of creating symlinks when llvm is embedded.

That was a bug on our end. @beanz, thanks for pinpointing it and sorry for the noise!

Jun 13 2017, 11:51 AM
v.g.vassilev added a comment to D33467: Fix LLVM build errors if necent build of GCC 7 is used.

Waiting on resolution to: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79162

Jun 13 2017, 10:21 AM

Jun 10 2017

v.g.vassilev added a comment to D33466: Fix file permissions.

ping...

Jun 10 2017, 12:59 AM

Jun 9 2017

v.g.vassilev closed D33930: Do not pick up by default the LLVM style if passing -format.

Changing the default of clang-apply-replacements makes sense to me.

Jun 9 2017, 3:24 PM
v.g.vassilev closed D29951: Load lazily the template specialization in multi-module setups..

r305120.

Jun 9 2017, 3:20 PM
v.g.vassilev closed D33366: Fix that global delete operator get's assigned to a submodule..

r305118.

Jun 9 2017, 2:37 PM
v.g.vassilev closed D34022: Repair 2010-05-31-palignr.c test.

Landed in r305089.

Jun 9 2017, 9:43 AM
v.g.vassilev closed D33438: We do not google test utils if we disabled LLVM_INCLUDE_TESTS.

Landed in r305088.

Jun 9 2017, 9:38 AM
v.g.vassilev created D34059: Get the file name for the symbol from the Module, not the SourceManager..
Jun 9 2017, 9:33 AM
v.g.vassilev updated the diff for D29951: Load lazily the template specialization in multi-module setups..

Address comments.

Jun 9 2017, 9:26 AM
v.g.vassilev added a reviewer for D33467: Fix LLVM build errors if necent build of GCC 7 is used: rsmith.

@rsmith, what's the right way to proceed here?

Jun 9 2017, 8:08 AM
v.g.vassilev abandoned D33465: Add build instructions for System Z s390, too..
Jun 9 2017, 8:04 AM
v.g.vassilev added a comment to D33465: Add build instructions for System Z s390, too..

@uweigand, you are absolutely right. Iterating on that with the author we will drop this patch from our codebase too. Thanks for the help!!

Jun 9 2017, 8:04 AM

Jun 8 2017

v.g.vassilev updated subscribers of D33468: Enable unicode output on terminals..

Adding the author in the loop.

Jun 8 2017, 2:20 PM
v.g.vassilev added a comment to D34022: Repair 2010-05-31-palignr.c test.

Raphael and I work together I can take care of it...

Jun 8 2017, 2:17 PM
v.g.vassilev added a comment to D33465: Add build instructions for System Z s390, too..

@ellert ping...

Jun 8 2017, 2:14 PM
v.g.vassilev added a comment to D33468: Enable unicode output on terminals..

ping...

Jun 8 2017, 2:11 PM

Jun 6 2017

v.g.vassilev updated the diff for D33930: Do not pick up by default the LLVM style if passing -format.

Use string.

Jun 6 2017, 4:22 AM
v.g.vassilev created D33930: Do not pick up by default the LLVM style if passing -format.
Jun 6 2017, 3:06 AM

Jun 1 2017

v.g.vassilev updated subscribers of D33703: Support lazy stat'ing of files referenced by module maps.
Jun 1 2017, 7:09 AM

May 31 2017

v.g.vassilev added inline comments to D33444: Fix an issue of creating symlinks when llvm is embedded.
May 31 2017, 2:06 PM
v.g.vassilev added a comment to D33444: Fix an issue of creating symlinks when llvm is embedded.

Thanks for looking into this.

May 31 2017, 11:50 AM

May 30 2017

v.g.vassilev updated subscribers of D33703: Support lazy stat'ing of files referenced by module maps.
May 30 2017, 11:47 PM

May 29 2017

v.g.vassilev added a comment to D33529: Allow clients to specify search order of DynamicLibraries..

That looks very good. Can we add a test case with dlopening a library with RTLD_LOCAL.

May 29 2017, 6:41 AM
v.g.vassilev added inline comments to D33383: [GSoC] Flag value completion for clang.
May 29 2017, 6:38 AM

May 27 2017

v.g.vassilev added a comment to D29877: Warn about unused static file scope function template declarations..

No. But I can point you to range-v3 which uses this pattern and I think the idiom is somewhat appealing, but that's orthogonal to Clang diagnosing it.

I found this:

https://github.com/ericniebler/range-v3/blob/a4829172c0d6c43687ba213c54f430202efd7497/include/range/v3/view/zip_with.hpp#L44

This code is wrong, and creates ODR violations on lines 190 and 200.

It seems to me that the warning is firing on dangerous / broken code (yay!) but the warning is not sufficient to explain *why* the code is broken (boo!).

May 27 2017, 2:32 AM
v.g.vassilev added inline comments to D29877: Warn about unused static file scope function template declarations..
May 27 2017, 2:30 AM

May 26 2017

v.g.vassilev added a comment to D30107: Refactor DynamicLibrary so searching for a symbol will have a defined order and libraries are properly unloaded when llvm_shutdown is called..

From what I see the OS resolves the symbol dependent on the position of the request. If the request comes from a shared library it has to start looking for the symbols local to the library first. I don't think we can get the position of the request so in order to get closer behavior (avoiding to specialcase the dlopen flags) we should put the executable as a last resort... This would also allow the shared libraries to overload weak symbols...

May 26 2017, 10:41 AM
v.g.vassilev added a comment to D30107: Refactor DynamicLibrary so searching for a symbol will have a defined order and libraries are properly unloaded when llvm_shutdown is called..

All this is fine, what we would like is the if (Process) part to become a last resource resolution step. Currently this is either we resolve from the process or we iterate over the handles.

May 26 2017, 10:05 AM

May 25 2017

v.g.vassilev added inline comments to D33529: Allow clients to specify search order of DynamicLibraries..
May 25 2017, 7:42 AM
v.g.vassilev added inline comments to D33529: Allow clients to specify search order of DynamicLibraries..
May 25 2017, 4:08 AM
v.g.vassilev added a comment to D33529: Allow clients to specify search order of DynamicLibraries..

What is the reasoning of it existence?
If adding libraries with RTLD_LOCAL is important, could that not be accomplished with an additional argument to DynamicLibrary::getPermanentLibrary?

May 25 2017, 3:36 AM
v.g.vassilev added a reviewer for D33529: Allow clients to specify search order of DynamicLibraries.: karies.

@marsupial, the reasoning for this is that we do not want to expose the symbols to our experiments software stacks because they have other uses of llvm. dlopening cling as libcling allows to hide symbols avoiding potential versioning and other issues.

May 25 2017, 3:31 AM

May 24 2017

v.g.vassilev added a comment to D30107: Refactor DynamicLibrary so searching for a symbol will have a defined order and libraries are properly unloaded when llvm_shutdown is called..

Symbol resolution is purposely different, as prior library search order was totally undefined which lead to serious problems (for cling in particular), see the Summary.

Right, all I am saying is it doesn't work and asking to revert because it makes the issue much worse on cling/ROOT end. I think you are mostly having in mind Windows which cling doesn't officially support, however, this patch breaks Unix.

Do you have more information or a test demonstrating the failure?

I think you should be able to reproduce it if you apply this patch and start up ROOT...

I'd really like to make sure that these issues aren't easily fixed or relying on prior behavior which was poorly defined before reversion.

I'd support that. What about reverting it now while you address the underlying out issues without pressure. If this patch was meant to address a cling issue, I'd have been happier to discuss and test it, before landing it.

If you could provide an example of failure I'd be happy to look at it.

May 24 2017, 2:07 PM
v.g.vassilev updated subscribers of D33465: Add build instructions for System Z s390, too..

Adding the author in the loop...

May 24 2017, 1:42 PM
v.g.vassilev added a comment to D30107: Refactor DynamicLibrary so searching for a symbol will have a defined order and libraries are properly unloaded when llvm_shutdown is called..

Symbol resolution is purposely different, as prior library search order was totally undefined which lead to serious problems (for cling in particular), see the Summary.

May 24 2017, 1:26 PM
v.g.vassilev updated subscribers of D30107: Refactor DynamicLibrary so searching for a symbol will have a defined order and libraries are properly unloaded when llvm_shutdown is called..
May 24 2017, 12:43 AM

May 23 2017

v.g.vassilev updated subscribers of D33467: Fix LLVM build errors if necent build of GCC 7 is used.

Adding David in the loop.

May 23 2017, 3:28 PM
v.g.vassilev added a comment to D30107: Refactor DynamicLibrary so searching for a symbol will have a defined order and libraries are properly unloaded when llvm_shutdown is called..

We are doing an upgrade on our internal vendor drop of LLVM and clang.

May 23 2017, 3:26 PM
v.g.vassilev created D33468: Enable unicode output on terminals..
May 23 2017, 3:01 PM
v.g.vassilev created D33467: Fix LLVM build errors if necent build of GCC 7 is used.
May 23 2017, 2:56 PM
v.g.vassilev created D33466: Fix file permissions.
May 23 2017, 2:51 PM
v.g.vassilev created D33465: Add build instructions for System Z s390, too..
May 23 2017, 2:49 PM
v.g.vassilev updated the diff for D33444: Fix an issue of creating symlinks when llvm is embedded.

Remove extra blank line.

May 23 2017, 8:09 AM
v.g.vassilev created D33444: Fix an issue of creating symlinks when llvm is embedded.
May 23 2017, 8:07 AM
v.g.vassilev updated subscribers of D33438: We do not google test utils if we disabled LLVM_INCLUDE_TESTS.
May 23 2017, 5:47 AM
v.g.vassilev updated subscribers of D33438: We do not google test utils if we disabled LLVM_INCLUDE_TESTS.
May 23 2017, 5:46 AM