- Oct 28, 2009
-
-
Evan Cheng authored
llvm-svn: 85361
-
- Oct 27, 2009
-
-
Evan Cheng authored
Do away with addLegalFPImmediate. Add a target hook isFPImmLegal which returns true if the fp immediate can be natively codegened by target. llvm-svn: 85281
-
- Oct 20, 2009
-
-
Dan Gohman authored
encounters an OEQ or UNE comparison, and update its callers to check for this return status and recover. This fixes a problem resulting from the LowerOperation hooks being called from LegalizeVectorOps, because LegalizeVectorOps only lowers vectors, so OEQ and UNE comparisons may still be at large. This fixes PR5092. llvm-svn: 84640
-
- Oct 19, 2009
-
-
Nate Begeman authored
llvm-svn: 84459
-
- Oct 18, 2009
-
-
Evan Cheng authored
stack slots and giving them different PseudoSourceValue's did not fix the problem of post-alloc scheduling miscompiling llvm itself. - Apply Dan's conservative workaround by assuming any non fixed stack slots can alias other memory locations. This means a load from spill slot #1 cannot move above a store of spill slot #2. - Enable post-alloc scheduling for x86 at optimization leverl Default and above. llvm-svn: 84424
-
Evan Cheng authored
llvm-svn: 84411
-
- Oct 17, 2009
-
-
Evan Cheng authored
llvm-svn: 84321
-
Evan Cheng authored
necessarily fixed. Only those will negative frame indices are "fixed." llvm-svn: 84315
-
- Oct 12, 2009
-
-
Dan Gohman authored
it to hold the address of an sret return value, for x86-64 ABI purposes. Also, fix the test that was originally intended to test this to actually test it, using FileCheck. llvm-svn: 83853
-
- Oct 08, 2009
-
-
Dale Johannesen authored
llvm-svn: 83499
-
- Sep 25, 2009
-
-
Dan Gohman authored
- Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions. This eliminates MachineInstr's std::list member and allows the data to be created by isel and live for the remainder of codegen, avoiding a lot of copying and unnecessary translation. This also shrinks MemSDNode. - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated fields for MachineMemOperands. - Change MemSDNode to have a MachineMemOperand member instead of its own fields with the same information. This introduces some redundancy, but it's more consistent with what MachineInstr will eventually want. - Ignore alignment when searching for redundant loads for CSE, but remember the greatest alignment. Target-specific code which previously used MemOperandSDNodes with generic SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range so that the SelectionDAG framework knows that MachineMemOperand information is available. llvm-svn: 82794
-
- Sep 23, 2009
-
-
Dan Gohman authored
is also the name of their type, as declarations like "EVT EVT" look really odd. llvm-svn: 82654
-
- Sep 21, 2009
-
-
Dan Gohman authored
And fix a bug with the behavior of min/max instructions formed from fcmp uge comparisons. Also, use FiniteOnlyFPMath() for this code instead of UnsafeFPMath, as it is more specific. llvm-svn: 82466
-
- Sep 20, 2009
-
-
Daniel Dunbar authored
llvm-svn: 82355
-
- Sep 19, 2009
-
-
Evan Cheng authored
Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. llvm-svn: 82311
-
- Sep 18, 2009
-
-
Evan Cheng authored
Enhance EmitInstrWithCustomInserter() so target can specify CFG changes that sdisel will use to properly complete phi nodes. Not functionality change yet. llvm-svn: 82273
-
Chris Lattner authored
getSymbolForDwarfGlobalReference is smart enough to know that it needs to register the stub it references with MachineModuleInfoMachO, so that it gets emitted at the end of the file. Move stub emission from X86ATTAsmPrinter::doFinalization to the new X86ATTAsmPrinter::EmitEndOfAsmFile asmprinter hook. The important thing here is that EmitEndOfAsmFile is called *after* the ehframes are emitted, so we get all the stubs. This allows us to remove a gross hack from the asmprinter where it would "just know" that it needed to output stubs for personality functions. Now this is all driven from a consistent interface. The testcase change is just reordering the expected output now that the stubs come out after the ehframe instead of before. This also unblocks other changes that Bill wants to make. llvm-svn: 82269
-
Dan Gohman authored
on x86, to avoid explicit test instructions. A few existing tests changed due to arbitrary register allocation differences. llvm-svn: 82263
-
- Sep 16, 2009
-
-
Chris Lattner authored
Eliminate the PersonalityPrefix/Suffix & NeedsIndirectEncoding fields from MAI: they aren't part of the asm syntax, they are related to the structure of the object file. To replace their functionality, add a new TLOF::getSymbolForDwarfGlobalReference method which asks targets to decide how to reference a global from EH in a pc-relative way. The default implementation just returns the symbol. The default darwin implementation references the symbol through an indirect $non_lazy_ptr stub. The bizarro x86-64 darwin specialization handles the weird "foo@GOTPCREL+4" hack. DwarfException.cpp now uses this to emit the reference to the symbol in the right way, and this also eliminates another horrible hack from DwarfException.cpp: - if (strcmp(MAI->getPersonalitySuffix(), "+4@GOTPCREL")) - O << "-" << MAI->getPCSymbol(); llvm-svn: 81991
-
- Sep 14, 2009
-
-
Chris Lattner authored
llvm-svn: 81726
-
- Sep 06, 2009
-
-
Duncan Sands authored
llvm-svn: 81128
-
Duncan Sands authored
about by icc (#593, partial). Patch by Erick Tryzelaar. llvm-svn: 81115
-
- Sep 03, 2009
-
-
Dan Gohman authored
swapping the operands if necessary. llvm-svn: 80940
-
Mon P Wang authored
- when transforming a vector shift of a non-immediate scalar shift amount, zero extend the i32 shift amount to i64 since the vector shift reads 64 bits - when transforming i16 vectors to use a vector shift, zero extend i16 shift amount - improve the code quality in some cases when transforming vectors to use a vector shift llvm-svn: 80935
-
Dan Gohman authored
disabling the use of 16-bit operations on x86. This doesn't yet work for inline asms with 16-bit constraints, vectors with 16-bit elements, trampoline code, and perhaps other obscurities, but it's enough to try some experiments. llvm-svn: 80930
-
- Sep 02, 2009
-
-
Sandeep Patel authored
llvm-svn: 80773
-
Chris Lattner authored
llvm-svn: 80764
-
- Aug 31, 2009
-
-
Duncan Sands authored
handling on x86-32 linux. llvm-svn: 80592
-
- Aug 29, 2009
-
-
Bill Wendling authored
encodings. - Make some of the values emitted by the FDEs dependent upon the pointer size. This is in line with how GCC does things. And it has the benefit of working for Darwin in 64-bit mode now. llvm-svn: 80428
-
- Aug 27, 2009
-
-
Eric Christopher authored
llvm-svn: 80269
-
Eric Christopher authored
llvm-svn: 80268
-
Dan Gohman authored
moves. This avoids the need to promote the operands (or implicitly extend them, a partial register update condition), and can reduce i8 register pressure. This substantially speeds up code such as write_hex in lib/Support/raw_ostream.cpp. subclass-coalesce.ll is too trivial and no longer tests what it was originally intended to test. llvm-svn: 80184
-
- Aug 22, 2009
-
-
Devang Patel authored
llvm-svn: 79742
-
- Aug 19, 2009
-
-
Eric Christopher authored
Add patterns and instruction encoding information. Add custom lowering to deal with hardwired return register of uncertain type (xmm0). llvm-svn: 79377
-
- Aug 18, 2009
-
-
Dan Gohman authored
returns a log2 value. llvm-svn: 79293
-
- Aug 16, 2009
-
-
Dan Gohman authored
or some other situation where no xmm registers need to be saved. llvm-svn: 79207
-
- Aug 15, 2009
-
-
Bill Wendling authored
llvm-svn: 79136
-
Bill Wendling authored
llvm-svn: 79135
-
Evan Cheng authored
support unaligned mem access only for certain types. (Should it be size instead?) ARM v7 supports unaligned access for i16 and i32, some v6 variants support it as well. llvm-svn: 79127
-
Dan Gohman authored
the register save area if %al is 0. This avoids touching xmm regsiters when they aren't actually used. llvm-svn: 79061
-