Brian Gaeke
e14e338724
Fix bug generating code for void call instructions: don't call
...
getReg() on void value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14178 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15 20:06:32 +00:00
Brian Gaeke
5eb64744d0
Squash a warning from the Solaris assembler by aligning the stack
...
on a double-word boundary instead of a single-word boundary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14177 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15 19:53:10 +00:00
Brian Gaeke
446ae11d7c
Allow special-casing of operand printing based on opcode. Print
...
non-register, non-immed. arguments to SETHI and OR using %hi() and
%lo() respectively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14176 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15 19:52:59 +00:00
Brian Gaeke
9df92825e1
Support constant GEP expressions.
...
Support copying long constants to register pairs.
Support copying ConstantPointerNulls and ConstantPointerRefs to registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14175 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-15 19:16:07 +00:00
Misha Brukman
5478c7a18a
Add file comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14172 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-14 15:13:59 +00:00
Brian Gaeke
f3210d2c53
Make -print-machineinstrs even stronger. You get to see the final code after
...
peepholing, and make it work the same way in the JIT as in LLC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14170 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-14 05:05:45 +00:00
Chris Lattner
01cdb1b367
By far, one of the most common uses of isnan is to make 'isunordered'
...
comparisons. In an 'isunordered' predicate, which looks like this at
the LLVM level:
%a = call bool %llvm.isnan(double %X)
%b = call bool %llvm.isnan(double %Y)
%COM = or bool %a, %b
We used to generate this code:
fxch %ST(1)
fucomip %ST(0), %ST(0)
setp %AL
fucomip %ST(0), %ST(0)
setp %AH
or %AL, %AH
With this patch, we generate this code:
fucomip %ST(0), %ST(1)
fstp %ST(0)
setp %AL
Which should make alkis happy. Tested as X86/compare_folding.llx:test1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14148 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 05:33:49 +00:00
Chris Lattner
57790422ca
Fix bug in previous checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14146 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 05:22:44 +00:00
Chris Lattner
899dbdcdb0
No really, these are dead now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14145 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 04:50:14 +00:00
Chris Lattner
0ca2c8e02c
Now that compare instructions aren't lumped in with the other twoargfp instructions,
...
we can get rid of the FpUCOM/FpUCOMi pseudo instructions, which makes stuff simpler
and faster.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14144 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 04:49:02 +00:00
Chris Lattner
ab8deccb82
Introduce a new FP instruction type to separate the compare cases from the
...
twoarg cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14143 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 04:41:24 +00:00
Chris Lattner
b4fe76cbb5
Add direct support for the isnan intrinsic, implementing test/Regression/CodeGen/X86/isnan.llx
...
testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14141 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 04:31:10 +00:00
Chris Lattner
665e661384
Add support for the setp instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14140 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 04:30:06 +00:00
Chris Lattner
d62d5d7e5b
Split compare instruction handling OUT of handleTwoArgFP into handleCompareFP.
...
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14139 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 04:25:06 +00:00
Brian Gaeke
46bf5afa01
Turn loads of ConstantPointerNulls into loads of zero... don't spill
...
them into the constant pool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14128 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11 02:03:48 +00:00
Chris Lattner
32305f7763
Fix the fixed stack offset, patch contributed by Vladimir Prus
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14110 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10 06:19:25 +00:00
Brian Gaeke
7fa84b70c3
Encode %fsr correctly; don't fail an assertion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14103 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 21:54:59 +00:00
Brian Gaeke
40e7fdc05a
Fix encoding of ST*FSR instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14102 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 21:54:58 +00:00
Brian Gaeke
e8a6bee3c9
Fix assertion failure message to have the right method name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14101 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 20:44:42 +00:00
John Criswell
6b5bd5857d
Fix for PR#366. We use getClassB() so that we can handle cast instructions
...
that cast to bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14096 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-09 15:18:51 +00:00
Brian Gaeke
8e6e7c90ce
Fix a minor bug in the map - since this pass adds a global symbol, it must be
...
accounted for in the map (at least, in its current format).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14075 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 20:08:30 +00:00
Brian Gaeke
777a1cde66
Add a TmpInstruction ctor that doesn't take a MCFI.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14073 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-08 18:52:46 +00:00
Brian Gaeke
e7c776118c
Fix up some spacing & fix a typo in an assertion in cpValue2Value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14027 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 20:51:40 +00:00
Chris Lattner
994d7ae649
This file is obsolete
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14005 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-04 00:15:21 +00:00
Brian Gaeke
8c4174a0a7
Add new internal-global-symbol mapping info pass... may its life be short
...
and sweet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13983 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 05:03:37 +00:00
Brian Gaeke
5821595693
Add new mapping info pass, when EmitMappingInfo is on.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13981 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 05:03:01 +00:00
Brian Gaeke
7d8793a3a5
Fix big mistake in my last checkin... the big question is, how did I ever
...
get this to link before?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13980 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 05:03:00 +00:00
Brian Gaeke
36e5254e4d
Add decl. for new mapping info pass factory method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13979 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 05:02:59 +00:00
Brian Gaeke
498231bc60
Collapse together the abstract superclass TargetRegInfo and SparcV9RegInfo, its
...
only concrete implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13977 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-03 02:45:09 +00:00
Chris Lattner
8fcf797f79
<alloca.h> on cygwin pulls in a ton of stuff (macros and function protos)
...
that we REALLY don't want in the CBE code.
With this fix, the CBE passes all of the MultiSource tests on cygwin that
it does on linux. Yaay!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13975 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 23:10:26 +00:00
Chris Lattner
98107ffd1e
Adjust to the new TargetMachine interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13957 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 06:06:20 +00:00
Chris Lattner
d6ad847c7c
Adjust to new TM interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13954 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 05:56:04 +00:00
Chris Lattner
bdf1400dd4
Method has been inlined into all callers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13953 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 05:55:48 +00:00
Chris Lattner
d029cd2d5a
Convert to the new TargetMachine interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13952 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 05:55:25 +00:00
Chris Lattner
289809d139
Stubs are no longer needed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13951 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 05:53:52 +00:00
Chris Lattner
143e0ea43d
Adjust to new TM interfaces
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13949 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02 05:47:26 +00:00
Brian Gaeke
e82706b3a0
There is no "mcff" here; delete the confusing comments that refer to it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13911 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 08:29:16 +00:00
Brian Gaeke
f561b08d67
Transform an occurrence of if(...) { assert (0) }.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13908 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 07:34:01 +00:00
Brian Gaeke
25d4b54f93
Reduce the amount of LLVM Values for which we save reg. allocator
...
state. Also, save the state for the incoming register of each phi
node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13906 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 07:08:43 +00:00
Brian Gaeke
a7afac29d0
Rename verifySavedState to dumpSavedState. Give it a new comment.
...
Call it at a more appropriate point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13905 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 04:22:24 +00:00
Brian Gaeke
2ffbb6d20a
Insert machine instructions generated for Phi nodes into their
...
corresponding MachineCodeForInstruction vectors.
I need to be able to get the register allocated for the thing which is
called PhiCpRes in this code; this should make that task easier, plus,
Phi nodes are no longer "special" in the sense that their
MachineCodeForInstruction is empty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13904 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-30 03:33:49 +00:00
Brian Gaeke
84d404b0ed
Remove unused #include.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13899 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-29 23:26:13 +00:00
Brian Gaeke
7916c92a2b
Add comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13898 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-29 23:10:20 +00:00
Brian Gaeke
1c334a3eea
Trim whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13897 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-29 22:49:51 +00:00
Brian Gaeke
20ab71086e
Give InsertCodeForPhis() a new documentation comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13896 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-29 22:20:59 +00:00
Tanya Lattner
20890832ea
updates to ModuloSched
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13881 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 20:14:12 +00:00
Brian Gaeke
fece1822bf
Give PhiCp nodes better names in many cases.
...
Simplify InsertPhiElimInstructions(), and give it a better doxygen comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13880 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 19:34:00 +00:00
Brian Gaeke
b985158c35
Make debugging output with -print-machineinstrs more useful: always print out
...
the transformed LLVM code which is the input to the instruction selector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13879 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 19:33:59 +00:00
Chris Lattner
9d1af97d02
Fix the big regression that has been killing the nightly tester these last
...
few days. Apparently the old symbol table used to auto rename collisions in
the type symbol table and the new one does not. It doesn't really make sense
for the new one to do so, so we just make the client do it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13877 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 05:47:27 +00:00
Chris Lattner
d06a549384
Minor changes. Switch to a SymbolTable remove that does not take linear time
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13874 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28 05:30:51 +00:00