summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86TargetMachine.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Add support for accurate garbage collection to the LLVM code generatorsChris Lattner2004-05-231-0/+5
| | | | llvm-svn: 13696
* Tablgen files for really simple instruction selectorJakub Staszak2004-04-061-1/+5
| | | | llvm-svn: 12714
* The X86 backend no longer needs the select lowering pass.Chris Lattner2004-03-311-6/+0
| | | | llvm-svn: 12578
* Add direct support for integer select instructions, though we still don't ↵Chris Lattner2004-03-301-2/+2
| | | | | | | | support folding compares into the select yet. llvm-svn: 12553
* Add the select lowering pass to get initial support for select instructionsChris Lattner2004-03-301-0/+6
| | | | llvm-svn: 12541
* make -print-machineinstrs work for both SparcV9 and X86Brian Gaeke2004-03-041-10/+8
| | | | llvm-svn: 12122
* Fix failures in 099.go due to the cfgsimplify pass creating switch instructionsChris Lattner2004-02-251-5/+6
| | | | | | where there did not used to be any before llvm-svn: 11829
* Add back machine code deleter pass until we get a MachineCode passAlkis Evlogimenos2004-02-151-0/+3
| | | | | | | that will be responsible for the creation of MachineFunctions and will be required by all MachineFunctionPass passes. llvm-svn: 11453
* Change MachineBasicBlock's vector of MachineInstr pointers into anAlkis Evlogimenos2004-02-121-3/+0
| | | | | | | | | ilist of MachineInstr objects. This allows constant time removal and insertion of MachineInstr instances from anywhere in each MachineBasicBlock. It also allows for constant time splicing of MachineInstrs into or out of MachineBasicBlocks. llvm-svn: 11340
* Add a new (hidden) option that is useful for profiling.Chris Lattner2004-02-091-1/+5
| | | | llvm-svn: 11218
* Take away the default iostream argument of createMachineFunctionPrinterPass(),Brian Gaeke2004-02-041-6/+6
| | | | | | at Chris's request. llvm-svn: 11120
* Clean up a lot of the code I added yesterday by exposing the IntrinsicLoweringChris Lattner2003-12-281-12/+7
| | | | | | implementation from the TargetMachine directly. llvm-svn: 10636
* implement support for the intrinsic lowering functionalityChris Lattner2003-12-281-9/+17
| | | | llvm-svn: 10629
* Remove floating point killer pass. This is now implemented in theAlkis Evlogimenos2003-12-201-10/+0
| | | | | | | | | | instruction selector by adding a new pseudo-instruction FP_REG_KILL. This instruction implicitly defines all x86 fp registers and is a terminator so that passes which add machine code at the end of basic blocks (like phi elimination) do not add instructions between it and the branch or return instruction. llvm-svn: 10562
* Finally, _actually delete the machine code_ for a function, after it hasChris Lattner2003-12-201-2/+6
| | | | | | | been emitted. Also, since the FPK pass is causing memory access violations, disable it. llvm-svn: 10559
* Rip JIT specific stuff out of TargetMachine, as per PR176Chris Lattner2003-12-201-20/+8
| | | | llvm-svn: 10542
* Add a floating point killer pass. This pass runs before registerAlkis Evlogimenos2003-12-131-0/+10
| | | | | | | | | | allocaton on the X86 to add information to the machine code denoting that our floating point stackifier cannot handle virtual point register that are alive across basic blocks. This pass adds an implicit def of all virtual floating point register at the end of each basic block. llvm-svn: 10446
* Add an option to enable the SSA based peephole optimizer.Chris Lattner2003-12-011-4/+8
| | | | | | | | | | Eventually this pass will provide substantially better code in the interim between when we have a crappy isel and nice isel. Unfortunately doing so requires fixing the backend to actually SUPPORT all of the fancy addressing modes that we now generate, and writing a DCE pass for machine code. Each of these is a fairly substantial job, so this will remain disabled for the immediate future. :( llvm-svn: 10276
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* Fix warnings building on sparcChris Lattner2003-11-061-2/+2
| | | | llvm-svn: 9758
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* Make replaceMachineCodeForFunction return void.Brian Gaeke2003-10-201-2/+1
| | | | llvm-svn: 9288
* Eliminate code for pointer size and endianness emulation.Chris Lattner2003-10-201-6/+1
| | | | llvm-svn: 9281
* You can't just blat the address into memory, you have to blat itsBrian Gaeke2003-10-171-4/+7
| | | | | | displacement. llvm-svn: 9210
* Implement replaceMachineCodeForFunction() for x86.Brian Gaeke2003-10-171-0/+7
| | | | llvm-svn: 9204
* Instead of hacking in custom support for Invoke/Unwind, use the LowerInvoke passChris Lattner2003-10-051-0/+14
| | | | llvm-svn: 8871
* Moved enum and command-line option in separate file. Also added function ↵Alkis Evlogimenos2003-10-021-29/+2
| | | | | | that returns the user selected register allocator to the caller. llvm-svn: 8819
* Change llc command line for register allocatorsAlkis Evlogimenos2003-10-021-6/+25
| | | | llvm-svn: 8815
* Revert previous change. For some reason this went into the main branchAlkis Evlogimenos2003-10-011-19/+2
| | | | llvm-svn: 8805
* Added command line option for linear scan allocatorAlkis Evlogimenos2003-10-011-2/+19
| | | | llvm-svn: 8804
* Targets should configure themselves based on a Module, not some wierd flagsChris Lattner2003-08-241-10/+10
| | | | llvm-svn: 8132
* Fix ABI issue: Longs really do need to be only 4 byte aligned on X86.Chris Lattner2003-08-171-1/+2
| | | | | | | | This bug caused miscompilation of programs using 'struct stat', but only if compiled with support for 64-bit filesystems. This could in theory effect other things, but only if the LLVM code shared data structures with native code. llvm-svn: 7928
* addPassesToJITCompile now takes a FunctionPassManager, to supportBrian Gaeke2003-08-131-2/+39
| | | | | | | | | function-at-a-time compilation and emission of code. Separate addPassesToEmitAssembly from addPassesToJITCompile, because the latter requires you to use FunctionPasses, and the former might diverge anyway. llvm-svn: 7817
* Add support for a pattern matching instruction selector. This is still inChris Lattner2003-08-111-1/+6
| | | | | | the early implementation phases, so it is disabled by default llvm-svn: 7719
* Factor shared codeChris Lattner2003-08-051-8/+4
| | | | llvm-svn: 7600
* Rename function to be more consistent with filenameChris Lattner2003-07-261-2/+2
| | | | llvm-svn: 7352
* Printer.cpp: Ditch addRequired/getAnalysis, because they leaveBrian Gaeke2003-07-231-2/+2
| | | | | | | | | | | Printer::doFinalization() out in the cold. Now we pass in a TargetMachine to Printer's constructor and get the TargetData from the TargetMachine. Don't pass TargetMachine or MRegisterInfo objects around in the Printer. Constify TargetData references. X86.h: Update comment and prototype of createX86CodePrinterPass(). X86TargetMachine.cpp: Update callers of createX86CodePrinterPass(). llvm-svn: 7275
* lib/Target/X86/X86TargetMachine.{cpp,h}: Add initial versionBrian Gaeke2003-06-181-0/+13
| | | | | | (non-working) of llc guts for X86, and add a prototype for it. llvm-svn: 6779
* Remove two fields from TargetData which are target specific.Chris Lattner2003-04-261-1/+0
| | | | llvm-svn: 5963
* Fix compatibility bug: X86 aligns doubles to 4 bytes, not 8!Chris Lattner2003-04-251-0/+1
| | | | llvm-svn: 5935
* Add support for the Switch instruction by running the lowerSwitch pass firstChris Lattner2003-04-231-1/+5
| | | | llvm-svn: 5867
* Rename -no-* to -disable-*Chris Lattner2003-02-261-1/+1
| | | | llvm-svn: 5642
* Implement code to keep the stack pointer aligned to an 8 byte boundary.Chris Lattner2003-01-161-1/+1
| | | | | | | | This improves the performance of the power benchmark by a few percent. This will be neccesary for SSE code, which requires 16 byte alignment of the stack. llvm-svn: 5320
* * No longer need lowerallocation passChris Lattner2003-01-131-9/+10
| | | | | | | * Add X86 Stackifier pass * Add peephole optimizer pass llvm-svn: 5233
* * Initialize new FrameInfo memberChris Lattner2002-12-281-4/+11
| | | | | | | * most pass ctors no longer take TM arguments * New prolog/epilog insertion pass llvm-svn: 5188
* Free machine codeChris Lattner2002-12-251-5/+3
| | | | llvm-svn: 5146
* Changes to allow for a configurable target machine that allows big endian ↵Chris Lattner2002-12-241-5/+16
| | | | | | and/or long pointer operation llvm-svn: 5131
* Local register allocator is now stable enough for use, it passes all testsChris Lattner2002-12-171-5/+5
| | | | llvm-svn: 5094
* Add mechanism to select register allocator to useChris Lattner2002-12-161-2/+11
| | | | llvm-svn: 5079
* Rename createSimpleX86RegisterAllocator to createSimpleRegisterAllocatorChris Lattner2002-12-161-1/+1
| | | | llvm-svn: 5071
OpenPOWER on IntegriCloud