- Mar 06, 2012
-
-
Benjamin Kramer authored
SmallPtrSet: Provide a more efficient implementation of swap than the default triple-copy std::swap. This currently assumes that both sets have the same SmallSize to keep the implementation simple, a limitation that can be lifted if someone cares. llvm-svn: 152143
-
Eli Friedman authored
llvm-svn: 152136
-
Jim Grosbach authored
llvm-svn: 152131
-
Jakob Stoklund Olesen authored
llvm-svn: 152129
-
Kevin Enderby authored
llvm-svn: 152127
-
Roman Divacky authored
llvm-svn: 152122
-
Jay Foad authored
implementation. Patch by Meador Inge llvm-svn: 152116
-
Jakob Stoklund Olesen authored
When an instruction only writes sub-registers, it is still necessary to add an <imp-def> operand for the super-register. When reloading into a virtual register, rewriting will add the operand, but when loading directly into a virtual register, the <imp-def> operand is still necessary. llvm-svn: 152095
-
Evan Cheng authored
llvm-svn: 152089
-
Owen Anderson authored
Make it possible for a target to mark FSUB as Expand. This requires providing a default expansion (FADD+FNEG), and teaching DAGCombine not to form FSUBs post-legalize if they are not legal. llvm-svn: 152079
-
Lang Hames authored
The fpscr register contains both flags (set by FP operations/comparisons) and control bits. The control bits (FPSCR) should be reserved, since they're always available and needn't be defined before use. The flag bits (FPSCR_NZCV) should like to be unreserved so they can be hoisted by MachineCSE. This fixes PR12165. llvm-svn: 152076
-
Eli Friedman authored
llvm-svn: 152070
-
Jim Grosbach authored
rdar://10988114 llvm-svn: 152068
-
Eli Friedman authored
llvm-svn: 152066
-
- Mar 05, 2012
-
-
Jim Grosbach authored
Use the new composite physical registers. llvm-svn: 152063
-
Jim Grosbach authored
llvm-svn: 152061
-
Jim Grosbach authored
With the new composite physical registers to represent arbitrary pairs of DPR registers, we don't need the pseudo-registers anymore. Get rid of a bunch of them that use DPR register pairs and just use the real instructions directly instead. llvm-svn: 152045
-
Jim Grosbach authored
Used to allow context sensitive printing of super-register or sub-register references. llvm-svn: 152043
-
Bill Wendling authored
Patch by Sean Silva! llvm-svn: 152042
-
Chad Rosier authored
Specifically, remove the magic number when checking to see if the copy has a glue operand and simplify the checking logic. rdar://10930395 llvm-svn: 152041
-
Sebastian Pop authored
In this update: - I assumed neon2 does not imply vfpv4, but neon and vfpv4 imply neon2. - I kept setting .fpu=neon-vfpv4 code attribute because that is what the assembler understands. Patch by Ana Pazos <apazos@codeaurora.org> llvm-svn: 152036
-
Sebastian Pop authored
llvm-svn: 152035
-
Sebastian Pop authored
llvm-svn: 152034
-
Duncan Sands authored
llvm-svn: 152027
-
Chandler Carruth authored
llvm-svn: 152026
-
Chandler Carruth authored
This implicitly fixes a nasty bug in the GVN hashing (that thankfully could only manifest as a performance bug): actually include the opcode in the hash. The old code started the hash off with the opcode, but then overwrote it with the type pointer. Since this is likely to be pretty hot (GVN being already pretty expensive) I've included a micro-optimization to just not bother with the varargs hashing if they aren't present. I can't measure any change in GVN performance due to this, even with a big test case like Duncan's sqlite one. Everything I see is in the noise floor. That said, this closes a loop hole for a potential scaling problem due to collisions if the opcode were the differentiating aspect of the expression. llvm-svn: 152025
-
Chandler Carruth authored
hashing infrastructure. I wonder why we don't just use StringMap here, and I may revisit the issue if I have time, but for now I'm just trying to consolidate. llvm-svn: 152023
-
Craig Topper authored
llvm-svn: 152016
-
Eli Friedman authored
llvm-svn: 152014
-
- Mar 04, 2012
-
-
Jakob Stoklund Olesen authored
The first def of a virtual register cannot also read the register. Assert on such bad machine code instead of trying to fix it. TwoAddressInstructionPass should never create code like that. llvm-svn: 152010
-
Jakob Stoklund Olesen authored
We are already setting <undef> flags, and that is good enough. The <imp-def> operands don't mean anything any more. llvm-svn: 152009
-
Jakob Stoklund Olesen authored
MachineOperands that define part of a virtual register must have an <undef> flag if they are not intended as read-modify-write operands. The old trick of adding an <imp-def> operand doesn't work any longer. Fixes PR12177. llvm-svn: 152008
-
Duncan Sands authored
equalities into phi node operands for which the equality is known to hold in the incoming basic block. That's because replaceAllDominatedUsesWith wasn't handling phi nodes correctly in general (that this didn't give wrong results was just luck: the specific way GVN uses replaceAllDominatedUsesWith precluded wrong changes to phi nodes). llvm-svn: 152006
-
Chandler Carruth authored
new hash_value infrastructure, and replace their implementations using hash_combine. This removes a complete copy of Jenkin's lookup3 hash function (which is both significantly slower and lower quality than the one implemented in hash_combine) along with a somewhat scary xor-only hash function. Now that APInt and APFloat can be passed directly to hash_combine, simplify the rest of the LLVMContextImpl hashing to use the new infrastructure. llvm-svn: 152004
-
Chandler Carruth authored
llvm-svn: 152003
-
Bill Wendling authored
Some BBs can become dead after codegen preparation. If we delete them here, it could help enable tail-call optimizations later on. <rdar://problem/10256573> llvm-svn: 152002
-
Craig Topper authored
llvm-svn: 152001
-
Craig Topper authored
llvm-svn: 151998
-
Craig Topper authored
llvm-svn: 151996
-
Craig Topper authored
Use uint8_t instead of enums to store values in X86 disassembler table. Shaves 150k off the size of X86DisassemblerDecoder.o llvm-svn: 151995
-