aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/X86/InstSelectSimple.cpp
AgeCommit message (Collapse)Author
2003-09-08Eliminate support for the llvm.unwind intrinisic, using the Unwind ↵Chris Lattner
instruction instead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8411 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-08Add support for the unwind instructionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8408 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-28Add support for the llvm.unwind intrinsic, which we codegen to just do an abortChris Lattner
until we implement unwinding. Add support for the invoke instruction, which codegens just like a call with a branch after it. The end effect of this change is that programs using the invoke instruction, but never unwinding, will work fine. Programs that unwind will abort until we get unwind support. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8187 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-24Implement: Jello/test-constantexpr.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8127 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-18Add support for the sig(set|long)jmp intrinsicsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7951 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-13Factory methods for FunctionPasses now return type FunctionPass *.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7823 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-05This is the real fix for the previous register allocator problem.Chris Lattner
Physical registers should not float around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7587 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-04Fix Bug: test/Regression/Jello/2003-08-03-CallArgLiveRanges.llxChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7558 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-30Use target specific interface instead of forcing it to be target-genericChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7413 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-26Rename function to be more consistent with filenameChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7352 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-26If the pass changes _anything_ it must return trueChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7344 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-23Simplify code by using ConstantInt::getRawValue instead of checking to seeChris Lattner
whether the constant is signed or unsigned, then casting git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7252 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-18Please, save your applause^H^H^H^H^H^H^H^Hflames for the end...Brian Gaeke
Avoid a fall-through in the (stubby) treatment of the longjmp intrinsic call which causes llc & lli to core-dump. Add a sort-of treatment of cast double to ulong. I am not really sure what a user should expect to see upon casting a negative FP value to unsigned long long. But with what is given here, I was able to write a program that could cast -123.456 to ulong and back and get -123.0, which seems like a step in the right direction. GCC seems to give you 0. I don't know if I'd consider that useful. These cases were coming up in GNU coreutils-5.0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7205 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-17Use getClassB for load and store; we don't want to abort when weBrian Gaeke
try to load or store through a bool*. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7195 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-30Setjmp should always return zero if we don't implement longjmp. This avoidsChris Lattner
leaving trash in the register, fixing anagram git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7013 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-29Until there is a setjmp/longjmp transformation pass, codegen setjmp as a noopChris Lattner
and longjmp as an abort! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6977 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-22Do not use the inefficient, fixed function, CBW, CDQ, ... instructionsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6844 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-21Minor simplification to 64-bit instselChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6831 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-21For 16 and 32-bit multiplies, use the IMUL instruction instead of the MUL ↵Chris Lattner
instruction. This allows us to not force the use of the EAX/AX registers! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6830 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-21Generate code for LONG indexes to getelementptr instructions more efficientlyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6828 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05Implement generation of cmp R, C to not use an extra registerChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6627 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05Special case simple binary operator X op CChris Lattner
This avoid generating a register to hold C, which in turn speeds up the register allocator by a lot: ~9% on 164.gzip and ~17% on 256.bzip2. This also speeds up other passes. This also speeds up execution of the program marginally, and makes the asm much easier to read. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6626 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-03Remove usage of typedefChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6583 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-01* Implement cast (long|ulong) to boolChris Lattner
* Fix cast of (short|ushort|int|uint) to bool to work right git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6510 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-01Add support for shl and shr for 64 bit integer typesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6499 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-13Clean up #includesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6173 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12Make abort more explicitChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6151 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12Remove the assertion failure of course... dohChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6150 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12Implement casts from unsigned integers to floating pointChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6148 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12Make error messages more useful than jsut an abortChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6146 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-12Do not insert multiple initializations for the same value in a PHI nodeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6113 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08Add support for Add, Sub, And, Or, & Xor constant exprsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6049 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-08Add support for variable argument functions!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6046 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-07IMPLICIT_DEF was not the beautiful elegant solution I thought it was goingChris Lattner
to be. In fact, it made stuff worse. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6013 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-06Emit pseudo instructions to indicate that some registers are live on entranceChris Lattner
and exit of the function. This fixes bug: Jello/2003-05-06-LivenessClobber.llx and the Fhourstones benchmark git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6010 91177308-0d34-0410-b5e6-96231b3b80d8
2003-05-03The Hyphenation-Adding Committee is now in session.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5986 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-25Fix bogus assertChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5949 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23Fix iterator invalidation problem with cast instructionsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5876 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-23Implement the constantexpr CAST instruction correctlyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5875 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-22It's "necessary" to spell "necessarily" correctly.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5833 91177308-0d34-0410-b5e6-96231b3b80d8
2003-04-21Add support for a simple constantexpr: cast of one ptr type to anotherChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5829 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-16Don't emit unneccesary branch instructions!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5328 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-16Implement optimization folding setcc into branch.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5324 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-16Implement code to keep the stack pointer aligned to an 8 byte boundary.Chris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5320 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14Rename MachineInstrInfo -> TargetInstrInfoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-13* Adjust to use new interfaces, eliminating CurReg stuffChris Lattner
* Support arbitrary FP constants * Fix bugs in frame layout for function calls and incoming arguments * Insert copies for constant arguments to PHI nodes into the BOTTOM of predecessor blocks, not the top. * Implement _floating point_ support: setcc, return, load, store, cast * Fix several bugs in the cast instruction * Abstract out call emission and load/store for FP * Implement malloc/free without previous lowering pass. * Make use of new forms of MachineOperand * Implement _long_ support! * Fix many bugs in FP support * Change branch from je/jne to je/jmp * Simplify code generated for GEP instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5223 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28Rename FunctionFrameInfo to MachineFrameInfoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5201 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-28* Use the new Abstract Frame Manager to handle incoming arguments andChris Lattner
fixed size allocas * Revamp call emission to work with new frame manager git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5178 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-25* Simplify Value classesChris Lattner
* Add initial support for FP constants * Add initial FP support for several instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5154 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-24Changes to compile with GCC 2.96Chris Lattner
Changes to support configurable pointer size and endianness git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5130 91177308-0d34-0410-b5e6-96231b3b80d8