- Feb 22, 2012
-
-
Craig Topper authored
Make all pointers to TargetRegisterClass const since they are all pointers to static data that should not be modified. llvm-svn: 151134
-
Rafael Espindola authored
llvm-svn: 151127
-
Rafael Espindola authored
the dominance once the dominates method is fixed and why we can use the builder's insertion point. Fixes pr12048. llvm-svn: 151125
-
Aaron Ballman authored
llvm-svn: 151123
-
Jakob Stoklund Olesen authored
llvm-svn: 151113
-
Jakob Stoklund Olesen authored
This makes RAFast 4% faster, and it gets rid of the dodgy DenseMap iteration. This also revealed that RAFast would sometimes dereference DenseMap iterators after erasing other elements from the map. That does seem to work in the current DenseMap implementation, but SparseSet doesn't allow it. llvm-svn: 151111
-
Akira Hatanaka authored
llvm-svn: 151107
-
Jakob Stoklund Olesen authored
Even if a call instruction has %SP<imp-def> operands, it doesn't change the value of the stack pointer. llvm-svn: 151104
-
- Feb 21, 2012
-
-
Lang Hames authored
bundles. This method takes a bundle start and an MI being bundled, and makes the intervals for the MI's operands appear to start/end on the bundle start. Also fixes some minor cosmetic issues (whitespace, naming convention) in the HMEditor code. llvm-svn: 151099
-
Eric Christopher authored
Part of rdar://10493979 where it reduces by about .5% (10k) llvm-svn: 151097
-
Nick Lewycky authored
they'll be simple enough to simulate, and to reduce the chance we'll encounter equal but different simple pointer constants. This removes the symptoms from PR11352 but is not a full fix. A proper fix would either require a guarantee that two constant objects we simulate are folded when equal, or a different way of handling equal pointers (ie., trying a constantexpr icmp on them to see whether we know they're equal or non-equal or unsure). llvm-svn: 151093
-
Evan Cheng authored
llvm-svn: 151083
-
Rafael Espindola authored
llvm-svn: 151079
-
Benjamin Kramer authored
llvm-svn: 151056
-
Benjamin Kramer authored
This transformation is not safe in some pathological cases (signed icmp of pointers should be an extremely rare thing, but it's valid IR!). Add an explanatory comment. Kudos to Duncan for pointing out this edge case (and not giving up explaining it until I finally got it). llvm-svn: 151055
-
Duncan Sands authored
and into StringRef.cpp, which is where the other StringRef stuff is. llvm-svn: 151054
-
Jay Foad authored
llvm-svn: 151052
-
Chandler Carruth authored
the normalize routine, especially the empty while loops. llvm-svn: 151050
-
Jay Foad authored
using a DenseMap and Talin's new GeneralHash, avoiding the need for a temporary std::vector on every lookup. Patch by Meador Inge! llvm-svn: 151049
-
Chandler Carruth authored
days. No functionality changed. llvm-svn: 151048
-
Chandler Carruth authored
They're private static methods but we can just make them static functions in the implementation. It makes the implementations a touch more wordy, but takes another chunk out of the header file. Also, take the opportunity to switch the names to the new coding conventions. No functionality changed here. llvm-svn: 151047
-
Chandler Carruth authored
Somehow, I even missed the ones I wrote just the other day... Thanks to Matt for the code review. llvm-svn: 151045
-
Andrew Trick authored
Passes after RegAlloc should be able to rely on MRI->getNumVirtRegs() == 0. This makes sharing code for pre/postRA passes more robust. Now, to check if a pass is running before the RA pipeline begins, use MRI->isSSA(). To check if a pass is running after the RA pipeline ends, use !MRI->getNumVirtRegs(). PEI resets virtual regs when it's done scavenging. PTX will either have to provide its own PEI pass or assign physregs. llvm-svn: 151032
-
Andrew Trick authored
llvm-svn: 151031
-
Rafael Espindola authored
llvm-svn: 151026
-
Rafael Espindola authored
llvm-svn: 151025
-
Chandler Carruth authored
construction. Simplify its interface, implementation, and users accordingly as there is no longer an 'uninitialized' state to check for. Also, fixes a bug lurking in the interface as there was one method that didn't correctly check for initialization. llvm-svn: 151024
-
Rafael Espindola authored
know where users will be added. Because of this, it cannot use Builder.GetInsertPoint at all. This patch * removes the FIXME about adding the assert. * adds a comment explaining hy we don't have one. * removes a broken logic that only works for some callers and is not needed since r150884. * adds an assert to caller that would have caught the bug fixed by r150884. llvm-svn: 151015
-
Lang Hames authored
llvm-svn: 151006
-
Nick Lewycky authored
llvm-svn: 151003
-
Evan Cheng authored
ecx = mov eax al = mov ch The second copy is not a nop because the sub-indices of ecx,ch is not the same of that of eax/al. Re-enabled machine-cp. PR11940 llvm-svn: 151002
-
Chad Rosier authored
llvm-svn: 150998
-
- Feb 20, 2012
-
-
Benjamin Kramer authored
InstCombine: Removing the base from the address calculation is only safe when the GEPs are inbounds. llvm-svn: 150978
-
Eric Christopher authored
derived from anything. llvm-svn: 150975
-
Eric Christopher authored
too. llvm-svn: 150974
-
Eric Christopher authored
llvm-svn: 150973
-
Benjamin Kramer authored
InstCombine: When comparing two GEPs that were derived from the same base pointer but use different types, expand the offset calculation and to the compare on the offset if profitable. This came up in SmallVector code. llvm-svn: 150962
-
Benjamin Kramer authored
- Ignore pointer casts. - Also expand GEPs that aren't constantexprs when they have one use or only constant indices. - We now compile "&foo[i] - &foo[j]" into "i - j". llvm-svn: 150961
-
James Molloy authored
llvm-svn: 150957
-
James Molloy authored
Teach TargetSelectionDAG about lengthening loads for vector types and set v4i8 as legal. Allow FP_TO_UINT for v4i16 from v4i32. llvm-svn: 150956
-