aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-06-05Allow libcalls for i16 sdiv/udiv/rem operations.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72941 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05ELF Code Emitter now uses CurBufferPtr, BufferBegin and BufferEnd, as do JIT andBruno Cardoso Lopes
MachO Writer. This will change with the arrival of ObjectCodeEmitter and BinaryObject git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72906 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Fix an erroneous check for isFNeg; the FNeg case is handledDan Gohman
a few lines later on. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72904 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Fix these so that they work on non-x86 Darwin machines.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72903 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Specify that this works for Darwin.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72899 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04The DWARF unwind info was incorrect. While compiling withBill Wendling
`-fomit-frame-pointer', we would lack the DW_CFA_advance_loc information for a lot of function, and then they would be `0'. The linker (at least on Darwin) needs to encode the stack size. In some cases, the stack size is too large to directly encode. So the linker checks to see if there is a "subl $xxx,%esp" instruction at the point where the `DW_CFA_def_cfa_offset' says the pc was. If so, the compact encoding records the offset in the function to where the stack size is embedded. But because the `DW_CFA_advance_loc' instructions are missing, it looks before the function and dies. So, instead of emitting the EH debug label before the stack adjustment operations, emit it afterwards, right before the frame move stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72898 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Split the Add, Sub, and Mul instruction opcodes into separateDan Gohman
integer and floating-point opcodes, introducing FAdd, FSub, and FMul. For now, the AsmParser, BitcodeReader, and IRBuilder all preserve backwards compatability, and the Core LLVM APIs preserve backwards compatibility for IR producers. Most front-ends won't need to change immediately. This implements the first step of the plan outlined here: http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72897 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Add new function attribute - noredzone. Devang Patel
Update code generator to use this attribute and remove DisableRedZone target option. Update llc to set this attribute when -disable-red-zone command line option is used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72894 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Fix FP_TO_UINT->i32 on ppc32 -mcpu=g5. This wasDale Johannesen
using Promote which won't work because i64 isn't a legal type. It's easy enough to use Custom, but then we have the problem that when the type legalizer is promoting FP_TO_UINT->i16, it has no way of telling it should prefer FP_TO_SINT->i32 to FP_TO_UINT->i32. I have uncomfortably hacked this by making the type legalizer choose FP_TO_SINT when both are Custom. This fixes several regressions in the testsuite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72891 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04RALinScan::attemptTrivialCoalescing() was returning a virtual register ↵Evan Cheng
instead of the physical register it is allocated to. This resulted in virtual register(s) being added the live-in sets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72890 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04A value defined by an implicit_def can be liven to a use BB. This is ↵Evan Cheng
unfortunate. But register allocator still has to add it to the live-in set of the use BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72889 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04A value defined by an implicit_def can be liven to a use BB. This is ↵Evan Cheng
unfortunate. But register allocator still has to add it to the live-in set of the use BB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72888 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04CMake: Use explicit dependencies for Xcode (as well as MSVC), to makeDouglas Gregor
the CMake-generated Xcode project build properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72883 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04<rdar://problem/6944342> libLTO for darwin should add -static when assembling .sNick Kledzik
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72881 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Removed SimpleRewriter.Lang Hames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72880 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04For XTARGET to work on targets not in the list,Dale Johannesen
there must also be an XFAIL line. Fix a couple examples of this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72876 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Check in test changes that I accidentally left out of r72872.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72875 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Properly detect malloc_zone_statistics in CMake build systemDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72873 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Don't do the X * 0.0 -> 0.0 transformation in instcombine, becauseDan Gohman
instcombine doesn't know when it's safe. To partially compensate for this, introduce new code to do this transformation in dagcombine, which can use UnsafeFPMath. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72872 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Fix comments.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72870 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04--plugin is not needed for bfd anymore. Update docs.Torok Edwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72867 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Remove unused code.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72866 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04CMake: Renamed LLVM_ENABLE_ASSERTS toOscar Fuentes
LLVM_ENABLE_ASSERTIONS. Fine-tuned the logic that controls the definition of NDEBUG and _DEBUG macros. Thanks to Jay Foad for this suggestions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72864 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Custom lower SUB with two register operands.Sanjiv Gupta
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72861 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Fix comments.Torok Edwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72858 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Add support for outputting ANSI colors to raw_fd_ostream.Torok Edwin
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72854 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04PR3739, part 2: Use an explicit store to spill XMM registers. (Previously,Eli Friedman
the code tried to use "push", which doesn't exist for XMM registers.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72836 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04PR3739, part 1: Disable the red zone on Win64.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72830 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Remove a #include of <iostream>.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72828 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Re-apply 72756 with fixes. One of those was introduced by we changed ↵Evan Cheng
MachineInstrBuilder::addReg() interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72826 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Removed more testing code that snuck in earlier.Lang Hames
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72825 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04<rdar://problem/6940611> libLTO.dylib needs to let linker specify path to ↵Nick Kledzik
assembler Add lto_codegen_set_assembler_path() API which allows the linker to specify the path to the assembler tool to run. When assembler is used (instead of compiler) different command line options are used. Add LTO_API_VERSION #define so clients (linkers) can conditionalize use of new APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72823 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-04Use uint8_t and int32_t in {JIT,Machine}CodeEmitersBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72821 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Evan says it's wrong; back out 72808.Stuart Hastings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72817 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03<rdar://problem/6941517> C++ static constructors not preserved for static ↵Nick Kledzik
executable using LTO Move setRelocationModel() to be called before TargetMachine is instantiated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72816 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Change LTO to run the global opt pass twice.Daniel Dunbar
- This matches llvm-ld. It took a bit of archeology to figure out what the right thing to do was (whether this was intentionally added or intentionally removed). My final conclusion is that Chris added this intentionally here: http://llvm.org/viewvc/llvm-project?view=rev&revision=16913 but the changes weren't propogated to llvm-ld until here: http://llvm.org/viewvc/llvm-project?view=rev&revision=34058 which was after lto.cpp had been cloned off (of llvm-ld), here: http://llvm.org/viewvc/llvm-project?view=rev&revision=29494 From the commit message, it looks like the motivation for running global opt again is because we ran it prior to inlining. Based on that I updated the comment and also only run the pass if we actually ran the inliner. Chris, please review. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72811 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03PR4317: Handle splits where the new block is unreachable correctly in Eli Friedman
DominatorTreeBase::Split. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72810 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Recognize another euphemism for MOVDQ2Q.Stuart Hastings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72808 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03For Darwin / x86_64, override -relocation-model=static to pic if the output ↵Evan Cheng
is assembly since Darwin assembler does not really support -static codeine. I view this as a temporary workaround until the assembler / linker changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72806 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Add createStandardLTOPasses to StandardPasses.h, and move lto and llvm-ld over.Daniel Dunbar
- I know it sounds crazy, but I think all the pass lists are now coalesced into StandardPasses.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72805 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Convert Alpha and Mips to use a MachineFunctionInfo subclass toDan Gohman
carry GlobalBaseReg, and GlobalRetAddr too in Alpha's case. This eliminates the need for them to search through the MachineRegisterInfo livein list in order to identify these virtual registers. EmitLiveInCopies is now the only user of the virtual register portion of MachineRegisterInfo's livein data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72802 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Remove the redundant TM member from X86DAGToDAGISel; replace itDan Gohman
with an accessor method which simply casts the parent class SelectionDAGISel's TM to the target-specific type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72801 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Don't attempt to simplify an non-affine IV expression if it can'tDan Gohman
be simplified to a loop-invariant value. This fixes PR4315. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Make the buildbot see green (to make it easier to spot the next personMike Stump
that puts a new warning in). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72797 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Switch opt to using StandardPasses.hDaniel Dunbar
- No functionality change, but please check if you don't believe me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Remove some silly code.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Add StandardPasses.h which embeds the standard compilation passes shared byDaniel Dunbar
clang/llvm-gcc. - Implemented as inline functions for linking simplicity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Move ELFCodeEmiter stuff to new filesBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Revert 72650Bruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72783 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Remove unnecessary #includes.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72782 91177308-0d34-0410-b5e6-96231b3b80d8