- Feb 18, 2006
-
-
Evan Cheng authored
llvm-svn: 26283
-
- Jan 26, 2006
-
-
Jeff Cohen authored
llvm-svn: 25661
-
- Jan 23, 2006
-
-
Chris Lattner authored
llvm-svn: 25515
-
- Jan 21, 2006
-
-
Evan Cheng authored
Some assemblers can't recognize the aliases. llvm-svn: 25494
-
- Jan 10, 2006
-
-
Evan Cheng authored
* fiadd, fisub, etc. llvm-svn: 25189
-
- Dec 21, 2005
-
-
Chris Lattner authored
that were overloaded to work before and after the stackifier runs. With the new clean world, it is possible to write patterns for these instructions: woo! This also adds a few simple patterns here and there, though there are a lot still missing. These should be easy to add though. :) See the comments under "Floating Point Stack Support" for more details on the new world order. This patch as absolutely no effect on the generated code, woo! llvm-svn: 24899
-
- Aug 24, 2005
-
-
Chris Lattner authored
llvm-svn: 22991
-
Chris Lattner authored
llvm-svn: 22988
-
- Apr 22, 2005
-
-
Misha Brukman authored
* Convert tabs to spaces llvm-svn: 21426
-
- Jan 24, 2005
-
-
Chris Lattner authored
all. This should speed up the X86 backend fairly significantly on integer codes. Now if only we didn't have to compute livevar still... ;-) llvm-svn: 19796
-
- Sep 02, 2004
-
-
Reid Spencer authored
Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
-
- Jul 26, 2004
-
-
Misha Brukman authored
llvm-svn: 15239
-
Misha Brukman authored
All CVS history was renamed, the *,v were copied over. No worries. llvm-svn: 15238
-
- Jun 25, 2004
-
-
Tanya Lattner authored
Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function. llvm-svn: 14389
-
- Jun 11, 2004
-
-
Chris Lattner authored
llvm-svn: 14146
-
Chris Lattner authored
we can get rid of the FpUCOM/FpUCOMi pseudo instructions, which makes stuff simpler and faster. llvm-svn: 14144
-
Chris Lattner authored
twoarg cases. llvm-svn: 14143
-
Chris Lattner authored
This makes the code much simpler, and the two cases really do belong apart. Once we do it, it's pretty obvious how flawed the logic was for A != A case, so I fixed it (fixing PR369). This also uses freeStackSlotAfter instead of inserting an fxchg then popStackAfter'ing in the case where there is a dead result (unlikely, but possible), producing better code. llvm-svn: 14139
-
- Jun 02, 2004
-
-
Chris Lattner authored
llvm-svn: 13952
-
- May 01, 2004
-
-
Chris Lattner authored
Look at all of the pretty minuses. :) llvm-svn: 13303
-
- Apr 14, 2004
-
-
Chris Lattner authored
even when the "optimization" I added before is turned off. It generates this extremely pointless code: test: fld QWORD PTR [%ESP + 4] mov %AL, 0 test %AL, %AL fcmove %ST(0), %ST(0) ret Good thing the optimizer will have removed this before code generation anyway. :) llvm-svn: 12939
-
- Apr 12, 2004
-
-
Chris Lattner authored
llvm-svn: 12855
-
Chris Lattner authored
llvm-svn: 12851
-
- Apr 11, 2004
-
-
Chris Lattner authored
llvm-svn: 12836
-
- Apr 01, 2004
-
-
Chris Lattner authored
Implement a small optimization. In test/Regression/CodeGen/X86/select.ll, we now generate this for foldSel3: foldSel3: mov %AL, BYTE PTR [%ESP + 4] fld DWORD PTR [%ESP + 8] fld DWORD PTR [%ESP + 12] mov %EAX, DWORD PTR [%ESP + 16] mov %ECX, DWORD PTR [%ESP + 20] cmp %EAX, %ECX fxch %ST(1) fcmovae %ST(0), %ST(1) *** fstp %ST(1) ret Instead of: foldSel3: mov %AL, BYTE PTR [%ESP + 4] fld DWORD PTR [%ESP + 8] fld DWORD PTR [%ESP + 12] mov %EAX, DWORD PTR [%ESP + 16] mov %ECX, DWORD PTR [%ESP + 20] cmp %EAX, %ECX fxch %ST(1) fcmovae %ST(0), %ST(1) *** fxch %ST(1) *** fstp %ST(0) ret In practice, this only effects code size: performance should be basically unaffected. llvm-svn: 12588
-
Chris Lattner authored
llvm-svn: 12576
-
- Feb 29, 2004
-
-
Alkis Evlogimenos authored
their names more decriptive. A name consists of the base name, a default operand size followed by a character per operand with an optional special size. For example: ADD8rr -> add, 8-bit register, 8-bit register IMUL16rmi -> imul, 16-bit register, 16-bit memory, 16-bit immediate IMUL16rmi8 -> imul, 16-bit register, 16-bit memory, 8-bit immediate MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory llvm-svn: 11995
-
Alkis Evlogimenos authored
denote this fact. llvm-svn: 11971
-
- Feb 15, 2004
-
-
Alkis Evlogimenos authored
dereferencing it causes an assertion error. llvm-svn: 11458
-
- Feb 14, 2004
-
-
Alkis Evlogimenos authored
llvm-svn: 11430
-
- Feb 12, 2004
-
-
Alkis Evlogimenos authored
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
-
- Feb 10, 2004
-
-
Chris Lattner authored
llvm-svn: 11276
-
- Feb 03, 2004
-
-
Chris Lattner authored
llvm-svn: 11094
-
- Feb 02, 2004
-
-
Chris Lattner authored
llvm-svn: 11077
-
- Jan 30, 2004
-
-
Chris Lattner authored
llvm-svn: 11026
-
- Dec 20, 2003
-
-
Alkis Evlogimenos authored
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
-
Chris Lattner authored
instructions on an ilist llvm-svn: 10556
-
Chris Lattner authored
Minor cleanups to killer pass llvm-svn: 10555
-
- Dec 14, 2003
-
-
Alkis Evlogimenos authored
llvm-svn: 10460
-
- Dec 13, 2003
-
-
Alkis Evlogimenos authored
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
-