- Dec 21, 2009
-
-
Eli Friedman authored
llvm-svn: 91823
-
Chris Lattner authored
the underlying PHI node insertion issue in SSAUpdate is fixed. llvm-svn: 91821
-
Chris Lattner authored
'GetValueInMiddleOfBlock' case, instead of inserting duplicates. A similar fix is almost certainly needed by the machine-level SSAUpdate implementation. llvm-svn: 91820
-
Chris Lattner authored
implement some optimizations for MIN(MIN()) and MAX(MAX()) and MIN(MAX()) etc. This substantially improves the code in PR5822 but doesn't kick in much elsewhere. 2 max's were optimized in pairlocalalign and one in smg2000. llvm-svn: 91814
-
Chris Lattner authored
Use the presence of NSW/NUW to fold "icmp (x+cst), x" to a constant in cases where it would otherwise be undefined behavior. Surprisingly (to me at least), this triggers hundreds of the times in a few benchmarks: lencode, ldecode, and 466.h264ref seem to *really* like this. llvm-svn: 91812
-
Chris Lattner authored
a bunch in lencode, ldecod, spass, 176.gcc, 252.eon, among others. It is also the first part of PR5822 llvm-svn: 91811
-
- Dec 19, 2009
-
-
Chris Lattner authored
cache a pointer as being unavailable due to phi trans in the wrong place. This would cause later queries to fail even when they didn't involve phi trans. llvm-svn: 91787
-
Daniel Dunbar authored
llvm-svn: 91780
-
Daniel Dunbar authored
llvm-svn: 91778
-
Sanjiv Gupta authored
llvm-svn: 91777
-
Nuno Lopes authored
rename dprintf to dbgpritnf, in order to fix build with glibc (which already defines dprintf in stdio.h llvm-svn: 91775
-
Sanjiv Gupta authored
1. In indirect load/store insns , the name of fsr should be emitted as INDF. 2. include standard asmbly headers in generated asmbly. llvm-svn: 91768
-
Douglas Gregor authored
llvm-svn: 91764
-
Chris Lattner authored
where instcombine would have to split a critical edge due to a phi node of an invoke. Since instcombine can't change the CFG, it has to bail out from doing the transformation. llvm-svn: 91763
-
Bob Wilson authored
* change FindElementAndOffset to return a uint64_t instead of unsigned, and to identify the type to be used for that result in a GEP instruction. * move "isa<ConstantInt>" to be first in conditional. * replace some dyn_casts with casts. * add a comment about handling mem intrinsics. llvm-svn: 91762
-
Daniel Dunbar authored
llvm-svn: 91754
-
Sean Callanan authored
incarnations), integrated into the MC framework. The disassembler is table-driven, using a custom TableGen backend to generate hierarchical tables optimized for fast decode. The disassembler consumes MemoryObjects and produces arrays of MCInsts, adhering to the abstract base class MCDisassembler (llvm/MC/MCDisassembler.h). The disassembler is documented in detail in - lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime) - utils/TableGen/DisassemblerEmitter.cpp (table emitter) You can test the disassembler by running llvm-mc -disassemble for i386 or x86_64 targets. Please let me know if you encounter any problems with it. llvm-svn: 91749
-
Anton Korobeynikov authored
Based on patch by Michael Beck! llvm-svn: 91745
-
Anton Korobeynikov authored
llvm-svn: 91744
-
Dan Gohman authored
llvm-svn: 91742
-
Chris Lattner authored
Make some methods const. The only interesting change here is that it changes raw_fd_ostream::preferred_buffer_size to return zero on a scary stat failure instead of setting the stream to an error state. This method really should not mutate the stream. llvm-svn: 91740
-
John McCall authored
llvm-svn: 91736
-
John McCall authored
the templates in TypesContext.h can find them. Caught by clang++. llvm-svn: 91735
-
Dan Gohman authored
llvm-svn: 91729
-
Bill Wendling authored
- Move DisableScheduling flag into TargetOption.h - Move SDNodeOrdering into its own header file. Give it a minimal interface that doesn't conflate construction with storage. - Move assigning the ordering into the SelectionDAGBuilder. This isn't used yet, so there should be no functional changes. llvm-svn: 91727
-
Dan Gohman authored
llvm-svn: 91722
-
- Dec 18, 2009
-
-
Evan Cheng authored
llvm-svn: 91717
-
Eli Friedman authored
llvm-svn: 91715
-
Rafael Espindola authored
debugging some leaks (PR5770 in particular). llvm-svn: 91713
-
Bob Wilson authored
bootstrap. This also replaces the WeakVH references that Chris objected to with normal Value references. llvm-svn: 91711
-
Victor Hernandez authored
- an MDNode is designated as function-local when created, and continues to be even if its operands are modified not to refer to function-local IR - function-localness is designated via lowest bit in SubclassData - getLocalFunction() descends MDNode tree to see if it is consistently function-local Add verification of MDNodes to checks that MDNodes are consistently function-local. Update AsmWriter to use isFunctionLocal(). llvm-svn: 91708
-
Daniel Dunbar authored
llvm-svn: 91706
-
Dan Gohman authored
associative either. llvm-svn: 91701
-
Rafael Espindola authored
MI was not being used but it was also not being deleted, so it was kept in the garbage list. The memory itself was freed once the function code gen was done. Once in a while the codegen of another function would create an instruction on the same address. Adding it to the garbage group would work once, but when another pointer was added it would cause an assert as "Cache" was about to be pushed to Ts. For a patch that make us detect problems like this earlier, take a look at http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20091214/092758.html With that patch we assert as soon and the new instruction is added to the garbage set. llvm-svn: 91691
-
Tilmann Scheller authored
Patch contributed by Ken Werner of IBM! llvm-svn: 91681
-
Tilmann Scheller authored
Patch contributed by Ken Werner of IBM! llvm-svn: 91680
-
Eli Friedman authored
multiple uses. (The construct in question was found in gcc.) llvm-svn: 91675
-
Evan Cheng authored
be non-optimal. To be precise, we should avoid folding loads if the instructions only update part of the destination register, and the non-updated part is not needed. e.g. cvtss2sd, sqrtss. Unfolding the load from these instructions breaks the partial register dependency and it can improve performance. e.g. movss (%rdi), %xmm0 cvtss2sd %xmm0, %xmm0 instead of cvtss2sd (%rdi), %xmm0 An alternative method to break dependency is to clear the register first. e.g. xorps %xmm0, %xmm0 cvtss2sd (%rdi), %xmm0 llvm-svn: 91672
-
Dan Gohman authored
is not reassociative. llvm-svn: 91667
-
Dan Gohman authored
llvm-svn: 91666
-