- User Since
- Oct 24 2014, 3:08 AM (364 w, 4 d)
Feb 8 2017
I don't have commit rights, so I'll be dependent of someone commiting it for me.
Feb 1 2017
Nov 15 2016
I don't have commit rights, so I will depend on you for this.
Not much simpler in fact, because we need to handle a vector of files, but more local, so probably easier to understand.
Nov 14 2016
Nov 1 2016
Oct 21 2016
Yeah, you're right, the previous code is used for reference was inconsistent here. Now I return false and set an error string. Also remove an hacky ifdef which was needed on previous implementation (because the master id was updated to 0), but now we leave it to -1, so it's not needed anymore.
Oct 17 2016
Jul 12 2016
I don't have write access to SVN, so IIUC LLVM policy says I can't approve a patch.
Jul 8 2016
Do you known if there is any good reason Analyzer plugins aren't using the Registry system (thus forcing plugin writers to manually export the functions)?
Plugins tests are still disabled by lit.cfg I think, as it only checks for enable_shared, which is disabled. I suppose we could wait for both this and the SampleAnalyzerPlugin to be patched before enabling plugins tests if we have LLVM_EXPORT_SYMBOLS_FOR_PLUGINS, as every plugin test should work after this.
Jul 2 2016
The PrintFunctionNames plugin works fine, but not the SampleAnalyzerPlugin? The checker-plugins test fails. Not sure, but I suppose it's because the regitration method for checkers is different (a C method called clang_registerCheckers is retrieved in the DLL from the main program, then called with a CheckerRegistry - which is not related with the Registry class - on which a templated method addChecker is called).
Jul 1 2016
Jun 30 2016
When I tried your patch and added LLVM_EXPORT_SYMBOLS_FOR_PLUGINS=ON, I had multiple errors on your python scripts, like:
File "utils/extract_symbols.py", line 399, in <module> calling_convention_decoration = is_32bit_windows(libs) File "utils/extract_symbols.py", line 88, in dumpbin_is_32bit_windows match = re.match('.+machine \((\S+)\)', line) File "C:\Program Files\Python35\lib\re.py", line 163, in match return _compile(pattern, flags).match(string) TypeError: cannot use a string pattern on a bytes-like object
Jun 22 2016
I will let you submit it for me if everything seems ok.
Jun 21 2016
Fixed passing argument from clang driver to cc1.
Added driver tests.
Updated to head. Removed the Cmake rule modification (because we need first to add some code in clang to really handle plugins on Windows).
Jun 20 2016
New patch, which instead add NoInline to function not marked (implicitly or explicitly) inline, when we use the -finline-hint-functions flag (effectily inlining only implicitly and explicitly inline functions). Also adds support for /Ob1, since it's now an alias for it.
There is no longer a flag to treat implicit and explicit inline functions exactly the same way, I don't kow if it's really useful (it can be if we want to use the threshold difference between InlineHint and standard functions). If it's wanted for other uses, I can re-add it.
There is no flag to inline only explicitly marked inline functions, but it can be done by passing -finline-functions -mllvm -inline-threshold=-1000 (which will add InlineHint only to explicitly inline functions, and put a negative enough threshold for non-hinted functions to inline only the hinted ones).
Jun 16 2016
I don't think weak linkage defines this.
It's an equivalent of /Ob1 on MSVC. We usually use this option on build where we want only optimizations that do not hinder debugging. I want to use this to add support for /Ob1 in clang-cl mode.
It seems I could push -mllvm -inline-threshold=-1000 args or something like this when I get the /Ob1 argument instead of adding an API control in LLVM. It feels a little hackish to me (mainly because of the "arbitrary negative enough threshold" I would need to hardcode in clang), the inlining pass would need to compute the size even if it could be avoided, but it would work just fine. I would rather have an API access than pushing -mllvm command line parameters from clang, but I can live with it if you think it's better to keep it this way.
Updated to head revision, and pinging this.
Updated to head revision, and pinging on this.
Jun 7 2016
Pinging about this
May 25 2016
May 24 2016
It seems the new test was commited as .cc instead of .c, which changes the name mangling, making // NOINLINE-LABEL: @foo fail.
Either the file should be renamed, or -x c should be added to clang invocation, or LABEL check updated.
I don't have commit access, so you can do it for me, thanks.
Updated to respect the 80-columns limit.
Updated the tests to have a clearer checks. (I don't know well the FileCheck, so I took example from test/CodeGen/noinline.c, but this is indeed more comprehensible).
Apr 6 2016
Jan 28 2015
This breaks the build on Visual 2013, with:
C:\Users\Ilod\pdb\llvm\lib\Support\CommandLine.cpp(90): error C2536: 'CommandLineParser::CommandLineParser::ProgramName' : cannot specify explicit initializer for arrays