- Jun 26, 2012
-
-
Andrew Trick authored
The primary advantage is that loop optimizations will be applied in a stable order. This helps debugging and unit test creation. It is also a better overall implementation without pathologically bad performance on deep functions. On large functions (llvm-stress --size=200000 | opt -loops) Before: 0.1263s After: 0.0225s On deep functions (after tweaking llvm-stress, thanks Nadav): Before: 0.2281s After: 0.0227s See r158790 for more comments. The loop tree is now consistently generated in forward order, but loop passes are applied in reverse order over the program. If we have a loop optimization that prefers forward order, that can easily be achieved by adding a different type of LoopPassManager. llvm-svn: 159183
-
Andrew Trick authored
llvm-svn: 159182
-
Jim Ingham authored
llvm-svn: 159180
-
Evan Cheng authored
Make sure type is not extended or untyped before create a constant of the type. No test case. Found by inspection. llvm-svn: 159179
-
Eric Christopher authored
llvm-svn: 159178
-
Nuno Lopes authored
llvm-svn: 159177
-
Eli Friedman authored
Make some ugly hacks for inline asm operands which name a specific register a bit more thorough. PR13196. llvm-svn: 159176
-
Nuno Lopes authored
revert my previous commit (r159173), since as Eli pointed out, it's perfectly ok to mark realloc as noalias llvm-svn: 159175
-
Daniel Dunbar authored
llvm-svn: 159174
-
Nuno Lopes authored
do not set realloc() as NotAlias, since it can return the same pointer. This whole thing should be upgraded to use the MemoryBuiltin interface anyway.. llvm-svn: 159173
-
Daniel Dunbar authored
be built here. llvm-svn: 159172
-
Nico Weber authored
llvm-svn: 159171
-
Nico Weber authored
llvm-svn: 159170
-
Manman Ren authored
Revert r136662 which disables ARM byval. llvm-svn: 159168
-
- Jun 25, 2012
-
-
David Blaikie authored
This works around a quirk in the way that explicit template specializations are handled in Clang. We generate an implicit declaration from the original template which the explicit specialization is considered to redeclare. This trips up the explicit delete logic. This change only works around that strange representation. At some point it'd be nice to remove those extra declarations to make the AST more accurately reflect the C++ semantics. Review by Doug Gregor. llvm-svn: 159167
-
Manman Ren authored
More condition codes are included when deciding whether to remove cmp after a sub instruction. Specifically, we extend from GE|LT|GT|LE to GE|LT|GT|LE|HS|LS|HI|LO|EQ|NE. If we have "sub a, b; cmp b, a; movhs", we should be able to replace with "sub a, b; movls". rdar: 11725965 llvm-svn: 159166
-
Michael J. Spencer authored
llvm-svn: 159165
-
Richard Smith authored
struct and enum forward-declarations. llvm-svn: 159164
-
Owen Anderson authored
Define DAGOperand, an empty base class for RegisterClass and Operand. This allows one to write multiclasses that are polymorphic over both registers and non-register operands. llvm-svn: 159162
-
Eli Friedman authored
Use std::map instead of llvm::DenseMap because we rely on the stability of references to values in these maps. PR13197. llvm-svn: 159161
-
Jordan Rose authored
The implicit global allocation functions do not have valid source locations, but we still want to treat them as being "system header" functions for the purposes of how they affect program state. llvm-svn: 159160
-
Richard Smith authored
resulted in it being reverted. A test for that bug was added in r158950. Original comment: If an object (such as a std::string) with an appropriate c_str() member function is passed to a variadic function in a position where a format string indicates that c_str()'s return type is desired, provide a note suggesting that the user may have intended to call the c_str() member. Factor the non-POD-vararg checking out of DefaultVariadicArgumentPromotion and move it to SemaChecking in order to facilitate this. Factor the call checking out of function call checking and block call checking, and extend it to cover constructor calls too. Patch by Sam Panzer! llvm-svn: 159159
-
Dan Gohman authored
the call correctly even in the case where it is an invoke. This fixes rdar://11714057. llvm-svn: 159157
-
DeLesley Hutchins authored
llvm-svn: 159152
-
Matt Beaumont-Gay authored
llvm-svn: 159151
-
Jakob Stoklund Olesen authored
Verify that all paths from the entry block to a virtual register read pass through a def. Enable this check even when MRI->isSSA() is false. Verify that the live range of a virtual register is live out of all predecessor blocks, even for PHI-values. This requires that PHIElimination sometimes inserts IMPLICIT_DEF instruction in predecessor blocks. llvm-svn: 159150
-
Jakob Stoklund Olesen authored
Implicitly defined virtual registers can simply have the <undef> bit set on all uses, and copies can be turned into implicit defs recursively. Physical registers are a bit trickier. We handle the common case where a physreg def is used by a nearby instruction in the same basic block. For more complicated cases, just leave the IMPLICIT_DEF instruction in. llvm-svn: 159149
-
Nico Weber authored
for non-type template parameters in microsoft mode. PR12709. llvm-svn: 159147
-
Nuno Lopes authored
- simplifycfg: invoke undef/null -> unreachable - instcombine: invoke new -> invoke expect(0, 0) (an arbitrary NOOP intrinsic; only done if the allocated memory is unused, of course) - verifier: allow invoke of intrinsics (to make the previous step work) llvm-svn: 159146
-
Nuno Lopes authored
llvm-svn: 159145
-
Nuno Lopes authored
llvm-svn: 159144
-
Kostya Serebryany authored
llvm-svn: 159143
-
Dmitry Vyukov authored
llvm-svn: 159142
-
Dmitry Vyukov authored
llvm-svn: 159141
-
Kostya Serebryany authored
llvm-svn: 159140
-
Kostya Serebryany authored
llvm-svn: 159139
-
Meador Inge authored
Fix 'sys::IdentifyFileType' to work with big and little endian byte orderings when reading the ELF object file type. Initial patch by Stefan Hepp. llvm-svn: 159138
-
Kostya Serebryany authored
llvm-svn: 159137
-
Rafael Espindola authored
hidden. Being linkonce_odr guarantees that it is available in every dso that needs it. Being a constant/function with unnamed_addr guarantees that the copies don't have to be merged. llvm-svn: 159136
-
Kostya Serebryany authored
[asan] move tests from asan_interface_test.cc to asan_noinst_test.cc. Now all these tests do not require instrumentation and work directly with asan rt llvm-svn: 159135
-