- Mar 20, 2013
-
-
Michael J. Spencer authored
ArrayRef<uint8_t>::equals(); lowers to a byte compare loop :(. TODO: Figure out if we are getting hash collisions, or just have a lot of equal content. Also test if crypto hashing the content instead of full compare is better. llvm-svn: 177588
-
Enrico Granata authored
llvm-svn: 177587
-
Michael Liao authored
- After moving logic recognizing vector shift with scalar amount from DAG combining into DAG lowering, we declare to customize all vector shifts even vector shift on AVX is legal. As a result, the cost model needs special tuning to identify these legal cases. llvm-svn: 177586
-
Jason Molenda authored
track the EH FDEs for the functions in a module to using a RangeDataVector, a more light-weight data structure that only refers to File addresses. Makes the initial FDE scan about 3x faster, uses less memory. <rdar://problem/13465650> llvm-svn: 177585
-
Jakub Staszak authored
llvm-svn: 177584
-
Jordan Rose authored
llvm-svn: 177583
-
Tobias Grosser authored
llvm-svn: 177582
-
James Dennett authored
* Clarify what MacroInfo::isBuiltinMacro means, as it really means something more like "isMagicalMacro" or "requiresProcessingBeforeExpansion" -- the macros defined in "<built-in>" are not considered built-in by this function; * Escape __LINE__ as \__LINE__ in Doxygen comments so that the underscores don't get replaced by *bold* output; * Turn comments in MacroInfo.cpp into non-Doxygen comments, so that they don't result in duplicated/badly formatted Doxygen output; * Clean up a bunch of \brief formatting, and add a \file comment for MacroInfo.h. llvm-svn: 177581
-
Enrico Granata authored
Making MemoryGauge work by fixing a Mach API call mistake - saving (and dumping) more information out of the task_info call llvm-svn: 177580
-
Bill Wendling authored
Use the new `llvm_gcov_init' function to register the writeout and flush functions. The initialization function will also call `atexit' for some cleanups and final writout calls. But it does this only once. This is better than checking for the `main' function, because in a library that function may not exist. <rdar://problem/12439551> llvm-svn: 177579
-
Bill Wendling authored
This function replaces the call of `atexit' from being generated in the compile units. Basically, it registers the "writeout" and "flush" functions (if present). It will generate calls to the `atexit' function for cleanups and final writeout functions, but only once. This is better than checking for `main', because a library may not have a `main' function in it. <rdar://problem/12439551> llvm-svn: 177578
-
rdar://problem/12368093Douglas Gregor authored
<rdar://problem/12368093> Extend module maps with a 'conflict' declaration, and warn when a newly-imported module conflicts with an already-imported module. llvm-svn: 177577
-
Chris Lattner authored
llvm-svn: 177576
-
Rafael Espindola authored
member variable. Patch by Kai <kai@redstar.de> llvm-svn: 177575
-
Rafael Espindola authored
Patch by Kai <kai@redstar.de>. llvm-svn: 177574
-
Jakob Stoklund Olesen authored
This makes it possible to report multiple errors in one invocation. There are already calls to PrintError in CodeGenDAGPatterns.cpp which previously would not cause TableGen to fail. <rdar://problem/13463339> llvm-svn: 177573
-
Jordan Rose authored
This fixes some mistaken condition logic in RegionStore that caused global variables to be invalidated when /any/ region was invalidated, rather than only as part of opaque function calls. This was only being used by CStringChecker, and so users will now see that strcpy() and friends do not invalidate global variables. Also, add a test case we don't handle properly: explicitly-assigned global variables aren't being invalidated by opaque calls. This is being tracked by <rdar://problem/13464044>. llvm-svn: 177572
-
Jordan Rose authored
Due to improper modelling of copy constructors (specifically, their const reference arguments), we were producing spurious leak warnings for allocated memory stored in structs. In order to silence this, we decided to consider storing into a struct to be the same as escaping. However, the previous commit has fixed this issue and we can now properly distinguish leaked memory that happens to be in a struct from a buffer that escapes within a struct wrapper. Originally applied in r161511, reverted in r174468. <rdar://problem/12945937> llvm-svn: 177571
-
Jordan Rose authored
In this case, the value of 'x' may be changed after the call to indirectAccess: struct Wrapper { int *ptr; }; void indirectAccess(const Wrapper &w); void test() { int x = 42; Wrapper w = { x }; clang_analyzer_eval(x == 42); // TRUE indirectAccess(w); clang_analyzer_eval(x == 42); // UNKNOWN } This is important for modelling return-by-value objects in C++, to show that the contents of the struct are escaping in the return copy-constructor. <rdar://problem/13239826> llvm-svn: 177570
-
Jordan Rose authored
This is a bit of old code trying to deal with the fact that functions that take pointers often use them to access an entire array via pointer arithmetic. However, RegionStore already conservatively assumes you can use pointer arithmetic to access any part of a region. Some day we may want to go back to handling this specifically for calls, but we can do that in the future. No functionality change. llvm-svn: 177569
-
Matt Kopec authored
Patch by Ashok Thirumurthi. llvm-svn: 177568
-
Tobias Grosser authored
llvm-svn: 177567
-
David Blaikie authored
Refactor file/directory path in namespace debug info to refer directly to the pair rather than the DIFile (paired to a Clang test - excuse the buildbot skew/fallout) llvm-svn: 177566
-
David Blaikie authored
(this is a paired commit with an LLVM change to DIBuilder - expect some buildbot skew/fallout) llvm-svn: 177565
-
Michael J. Spencer authored
llvm-svn: 177564
-
Michael J. Spencer authored
llvm-svn: 177563
-
Michael J. Spencer authored
This changes from reading each relocation individually for each section to just storing the range of relocations. It also counts the relocations to preallocate the _references array. llvm-svn: 177562
-
Michael J. Spencer authored
llvm-svn: 177561
-
David Blaikie authored
The differing file (due to the #line directive in the original source) is for future testing improvements coming soon. llvm-svn: 177560
-
David Blaikie authored
The #line directive is mostly for backend testing (keeping these files matching should simplify maintenance somewhat) though the corresponding backend test improvement/update doesn't verify the file information directly just yet. Coming in a later iteration. llvm-svn: 177559
-
Enrico Granata authored
llvm-svn: 177558
-
Michael J. Spencer authored
llvm-svn: 177557
-
Michael J. Spencer authored
Improves performance. llvm-svn: 177556
-
Michael J. Spencer authored
This is the standard way of implementing LLVM RTTI. llvm-svn: 177555
-
Michael J. Spencer authored
This actually doesn't change behavior with the current LinkerInvocation, but it's needed when you make reading parallel. llvm-svn: 177554
-
Fariborz Jahanian authored
I am not sure how much we can improve for when a randon ObjC keyword is thrown into the ivar decl. block. // rdar://6854840 llvm-svn: 177553
-
Sean Silva authored
llvm-svn: 177552
-
Sean Silva authored
And ask for people to try it out and send us bug reports! llvm-svn: 177551
-
Eric Christopher authored
llvm-svn: 177550
-
Fariborz Jahanian authored
'}' is missing for the ivar declarations. // rdar://6854840 llvm-svn: 177549
-