Chris Lattner
e487abbfbf
Make the threshold a parameter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26093 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 20:15:48 +00:00
Chris Lattner
f262766619
Done
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26091 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 20:00:19 +00:00
Chris Lattner
3ab48ed72f
Enable LSR by default for SPARC: it is a clear win.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26090 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 19:59:55 +00:00
Chris Lattner
2f4b898e8c
Simplify the loop-unswitch pass, by not even trying to unswitch loops with
...
uses of loop values outside the loop. We need loop-closed SSA form to do
this right, or to use SSA rewriting if we really care.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26089 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 19:14:52 +00:00
Chris Lattner
9a4cacb7c2
Fix 80-column violations
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26088 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 07:41:14 +00:00
Chris Lattner
68d5ff2b83
Enhance MVIZ in three ways:
...
1. Teach it new tricks: in particular how to propagate through signed shr and sexts.
2. Teach it to return a bitset of known-1 and known-0 bits, instead of just zero.
3. Teach instcombine (AND X, C) to fold when we know all C bits of X.
This implements Regression/Transforms/InstCombine/bittest.ll, and allows
future things to be simplified.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26087 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 07:38:58 +00:00
Evan Cheng
7e9b26fc73
Match getTargetNode() changes (now return SDNode* instead of SDOperand).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26085 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 07:17:49 +00:00
Evan Cheng
6ae46c4c87
More changes to reduce frame size.
...
Move all getTargetNode() out of SelectionDAG.h into SelectionDAG.cpp. This
prevents them from being inlined.
Change getTargetNode() so they return SDNode * instead of SDOperand to prevent
copying. It should also help compilation speed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26083 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 07:15:23 +00:00
Chris Lattner
9413678f91
add an option to turn on LSR.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26080 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 05:06:36 +00:00
Chris Lattner
239862ce99
simplify this code now that each constant pool entry is not separately allocated
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26079 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 04:49:59 +00:00
Chris Lattner
3029f92051
Adjust to MachineConstantPool interface change: instead of keeping a
...
value/alignment pair for each constant, keep a value/offset pair.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26078 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 04:46:04 +00:00
Chris Lattner
fa77d43ba1
rename fields of constant pool entries
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26076 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 04:22:52 +00:00
Chris Lattner
74b7d27ab1
Simplify code, alignment must be specified now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26074 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 02:26:04 +00:00
Chris Lattner
948d9668a7
Make MachineConstantPool entries alignments explicit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26071 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 02:23:13 +00:00
Chris Lattner
5ac38d147b
Always pass in an alignment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26070 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 02:19:16 +00:00
Chris Lattner
23c574a841
provide an explicit alignment for cp entries
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26069 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 02:15:30 +00:00
Evan Cheng
34167215a8
Change Select() from
...
SDOperand Select(SDOperand N);
to
void Select(SDOperand &Result, SDOperand N);
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26067 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-09 00:37:58 +00:00
Chris Lattner
418caa1356
Darwin doesn't support #APP/#NO_APP
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26066 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 23:42:22 +00:00
Chris Lattner
d6c65ea924
Add support for assembler directives that wrap inline asm
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26065 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 23:41:56 +00:00
Chris Lattner
6f4a072e1f
Rename BSel -> PPCBSel for the benefit of doxygen users.
...
Move the methods out of line.
Remove unused Debug.h stuff.
Teach getNumBytesForInstruction to know the size of an inline asm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26064 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 19:33:26 +00:00
Chris Lattner
dba382b16a
add a simple optimization
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26062 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 17:47:22 +00:00
Chris Lattner
7560c3af83
Simplify some code, reducing calls to MaskedValueIsZero. Implement a minor
...
optimization where we reduce the number of bits in AND masks when possible.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26056 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 07:34:50 +00:00
Chris Lattner
cb298907ab
more email -> README moving
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26054 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 07:12:07 +00:00
Chris Lattner
4d73a5a204
Emit the 'mr' pseudoop for easier reading.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26053 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 06:56:40 +00:00
Chris Lattner
8f77b73430
Add some random notes, not high-prio
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26052 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 06:52:06 +00:00
Chris Lattner
8d3f490991
Move emails from nate into public places
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26051 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 06:43:51 +00:00
Chris Lattner
9ca96410fc
Use EraseInstFromFunction in a few cases to put the uses of the removed
...
instruction onto the worklist (in case they are now dead).
Add a really trivial local DSE implementation to help out bitfield code.
We now fold this:
struct S {
unsigned char a : 1, b : 1, c : 1, d : 2, e : 3;
S();
};
S::S() : a(0), b(0), c(1), d(0), e(6) {}
to this:
void %_ZN1SC1Ev(%struct.S* %this) {
entry:
%tmp.1 = getelementptr %struct.S* %this, int 0, uint 0
store ubyte 38, ubyte* %tmp.1
ret void
}
much earlier (in gccas instead of only in gccld after DSE runs).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26050 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 03:25:32 +00:00
Chris Lattner
fe243ebb64
Implement some more interesting select sccp cases. This implements:
...
test/Regression/Transforms/SCCP/select.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26049 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 02:38:11 +00:00
Chris Lattner
3391bcd434
Compile this:
...
xori r6, r2, 1
rlwinm r6, r6, 0, 31, 31
cmpwi cr0, r6, 0
bne cr0, LBB1_3 ; endif
to this:
rlwinm r6, r2, 0, 31, 31
cmpwi cr0, r6, 0
beq cr0, LBB1_3 ; endif
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26047 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 02:13:15 +00:00
Chris Lattner
62d1ade893
Fix a problem in my patch yesterday, causing a miscompilation of 176.gcc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26045 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-08 01:20:23 +00:00
Evan Cheng
5ada370f42
Fixed a local common symbol bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26044 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 23:32:58 +00:00
Evan Cheng
315421e77c
For ELF, .comm takes alignment value as the optional 3rd argument. It must be
...
specified in bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26043 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 21:54:08 +00:00
Chris Lattner
ad3bc8d8ad
Implement getConstraintType for PPC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26042 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 20:16:30 +00:00
Chris Lattner
d89d888cc5
Fix Transforms/InstCombine/2006-02-07-SextZextCrash.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26040 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 19:07:40 +00:00
Evan Cheng
2338c5cb0e
Darwin ABI issues: weak, linkonce, etc. dynamic-no-pic support is complete.
...
Also fixed a function stub bug. Added weak and linkonce support for
x86 Linux.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26038 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 08:38:37 +00:00
Evan Cheng
183fff997c
Remind myself to add PIC and static asm printer support.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26037 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 08:35:44 +00:00
Chris Lattner
74c51a0ff2
Generalize MaskedValueIsZero into a ComputeMaskedNonZeroBits function, which
...
is just as efficient as MVIZ and is also more general.
Fix a few minor bugs introduced in recent patches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26036 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 08:05:22 +00:00
Chris Lattner
3bedbd9d71
Make MaskedValueIsZero take a uint64_t instead of a ConstantIntegral as a
...
mask. This allows the code to be simpler and more efficient.
Also, generalize some of the cases in MVIZ a bit, making it slightly more aggressive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26035 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 07:27:52 +00:00
Chris Lattner
1a074fce15
Use Type::getIntegralTypeMask() to simplify some code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26034 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 07:00:41 +00:00
Chris Lattner
6dce1a7dfe
Implement the beginnings of a facility for simplifying expressions based on
...
'demanded bits', inspired by Nate's work in the dag combiner. This isn't
complete, but needs to unrelated instcombiner changes to continue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26033 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 06:56:34 +00:00
Jeff Cohen
8c9191c644
The interpreter assumes that the caller of runFunction() must be lli, and
...
therefore the function being called must be a main() returning an int. The
consequences when these assumptions are false are not good, so don't assume
them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26031 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 05:29:44 +00:00
Jeff Cohen
68835dd511
Teach the interpreter to handle global variables that are added to a module after
...
interpretation has begun. The JIT already handles this situation correctly, and
the interpreter can already handle new functions being added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26030 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 05:11:57 +00:00
Chris Lattner
763317de1b
Add the simple PPC integer constraints
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26027 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-07 00:47:13 +00:00
Chris Lattner
a3b8c57b9e
Eliminate the printCallOperand method, using a 'call' modifier on
...
printOperand instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26025 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 23:41:19 +00:00
Chris Lattner
815ef5b3dd
Change prototype
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26022 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 22:18:19 +00:00
Chris Lattner
a36cb0a6b1
Add support for modifier characters to operand printers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26021 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 22:17:23 +00:00
Jim Laskey
f60c2414ab
Goodbye nasty macro.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26019 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 21:54:05 +00:00
Jim Laskey
c2f0c8def7
Edit requests from Sabre.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26018 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 19:12:02 +00:00
Andrew Lenharth
054e2a758b
see what this allignment thing will do
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26017 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 17:15:17 +00:00
Jim Laskey
86cbdba522
Changing model for the construction of debug information.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26016 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 15:33:21 +00:00
Jim Laskey
984cb3773f
We seem to have settled to __DWARF for section name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26015 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 14:16:15 +00:00
Evan Cheng
5e35168b11
- Update load folding checks to match those auto-generated by tblgen.
...
- Manually select SDOperand's returned by TryFoldLoad which make up the
load address.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26012 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-06 06:02:33 +00:00
Evan Cheng
7564e0b46d
Complex pattern isel code shouldn't select nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26010 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 08:45:01 +00:00
Chris Lattner
c26017a4ae
Fix the Sparc backend with Evan's recent tblgen changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26009 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 08:35:50 +00:00
Chris Lattner
33872c99be
This xform isn't safe
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26007 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 08:26:16 +00:00
Nate Begeman
be71442292
Back out previous commit, it isn't safe.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26006 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 08:23:00 +00:00
Nate Begeman
bab9239d05
fold c1 << (x + c2) into (c1 << c2) << x. fix a warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26005 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 08:07:24 +00:00
Chris Lattner
176f0416d1
some stuff is done
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26004 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 07:54:37 +00:00
Chris Lattner
5f3b0eeddb
Turn A % (C << N), where C is 2^k, into A & ((C << N)-1) [urem only].
...
Turn A / (C1 << N), where C1 is "1<<C2" into A >> (N+C2) [udiv only].
Tested with: rem.ll:test5, div.ll:test10
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26003 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 07:54:04 +00:00
Nate Begeman
c031e33b68
Handle urem by shifted powers of 2.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26001 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 07:36:48 +00:00
Nate Begeman
fb5e4bdded
handle combining A / (B << N) into A >>u (log2(B)+N) when B is a power of 2
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26000 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 07:20:23 +00:00
Evan Cheng
900c826bc7
Use SelectRoot() as the entry to any tblgen based isel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25998 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 06:51:51 +00:00
Evan Cheng
ba2f0a9ee5
Use SelectRoot() as entry of any tblgen based isel.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25997 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 06:46:41 +00:00
Chris Lattner
c6aaf5acf9
Remove the SparcV8 backend. It has been renamed to be the Sparc backend.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25992 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 06:33:29 +00:00
Chris Lattner
e7c839ed5a
remove V8 reference
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25991 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 06:32:59 +00:00
Evan Cheng
4ee6211258
* Added SDNode::isOnlyUse().
...
* Fix hasNUsesOfValue(), it should be const.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25990 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 06:29:23 +00:00
Chris Lattner
7c90f73a1b
Rename SPARC V8 target to be the LLVM SPARC target.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25985 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 05:50:24 +00:00
Chris Lattner
213845367c
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25984 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 05:27:35 +00:00
Evan Cheng
7dd281b3e5
Re-commit the last bit of change that was backed out.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25983 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 05:25:07 +00:00
Chris Lattner
519ea2abc9
make sure that global doubles are aligned to 8 bytes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25981 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 01:46:49 +00:00
Chris Lattner
ff805b50f8
Use getPreferredAlignmentLog.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25980 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 01:45:04 +00:00
Chris Lattner
7d8d5a522f
Use the asmprinter to find out what the preferred alignment of a global is.
...
This patch speeds up 172.mgrid from 31.81s to 11.39s on darwin/ppc.
Many many thanks to Nate for tracking down the root cause of the issue.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25979 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 01:30:45 +00:00
Chris Lattner
4d57e0cd69
Implement the AsmPrinter::getPreferredAlignmentLog method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25978 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-05 01:29:18 +00:00
Andrew Lenharth
fd89543e7d
linkage fix for weak functions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25976 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 19:13:09 +00:00
Jeff Cohen
f3afef3b3a
Fix VC++ warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25975 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 16:20:31 +00:00
Chris Lattner
0a70f219f4
Use SCEVExpander::InsertCastOfTo instead of our own code. This reduces
...
#LLVM LOC, and auto-cse's cast instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25974 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 09:52:43 +00:00
Chris Lattner
ca1a4bebb3
Pull the InsertCastOfTo out of the header, implement CSE'ing of arguments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25973 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 09:51:53 +00:00
Chris Lattner
b46ef67679
Temporarily revert this patch, which probably breaks with the
...
tblgen patch reverted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25971 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 09:24:16 +00:00
Chris Lattner
03f774ad80
Value# select instructions, allowing -gcse to remove duplicates
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25969 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 09:15:29 +00:00
Evan Cheng
9c4815a036
Complex pattern's custom matcher should not call Select() on any operands.
...
Select them afterwards if it returns true.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25968 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 08:50:49 +00:00
Chris Lattner
c275dfa727
Custom lower VAARG for the case when we are doing vaarg(double). In this
...
case, the double being loaded may not be 8-byte aligned, so we have to use
our standard bit_convert game.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25967 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 08:31:30 +00:00
Chris Lattner
c4b612ba2a
Fix a nasty typo that broke functions with big stack frames.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25966 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 08:04:21 +00:00
Chris Lattner
329a515fe7
fix a bug in my last checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25965 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 07:48:46 +00:00
Chris Lattner
221fc3c6d6
Fix two significant bugs in LSR:
...
1. When rewriting code in outer loops, sometimes we would insert code into
inner loops that is invariant in that loop.
2. Notice that 4*(2+x) is 8+4*x and use that to simplify expressions.
This is a performance neutral change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25964 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 07:36:50 +00:00
Nate Begeman
a6973c348b
Remove some stuff that now works
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25963 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 07:29:35 +00:00
Chris Lattner
0d913eaaed
add a note
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25962 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 07:07:31 +00:00
Chris Lattner
69d39091fe
Two changes:
...
1. Treat FMOVD as a copy instruction, to help with coallescing in V9 mode
2. When in V9 mode, insert FMOVD instead of FpMOVD instructions, as we don't
ever rewrite FpMOVD instructions into FMOVS instructions, thus we just end
up with commented out copies!
This should fix a bunch of failures in V9 mode on sparc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25961 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 06:58:46 +00:00
Evan Cheng
cccf1232a6
Get rid of some memory leaks identified by Valgrind
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25960 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 06:49:00 +00:00
Chris Lattner
fdcc71eaa8
Let bugpoint work on sparc with v9 instructions enabled.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25958 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 05:02:27 +00:00
Jeff Cohen
003cecbc9d
Fix VC++ warning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25957 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 03:27:39 +00:00
Chris Lattner
dc19b70d24
Add initial support for immediates. This allows us to compile this:
...
int %rlwnm(int %A, int %B) {
%C = call int asm "rlwnm $0, $1, $2, $3, $4", "=r,r,r,n,n"(int %A, int %B, int 4, int 17)
ret int %C
}
into:
_rlwnm:
or r2, r3, r3
or r3, r4, r4
rlwnm r2, r2, r3, 4, 17 ;; note the immediates :)
or r3, r2, r2
blr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25955 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 02:26:14 +00:00
Evan Cheng
72f514cf39
Remove an unnecessary predicate.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25954 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 02:23:01 +00:00
Evan Cheng
e3de85b447
Separate FILD and FILD_FLAG, the later is only used for SSE2. It produces a
...
flag so it can be flagged to a FST.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25953 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 02:20:30 +00:00
Chris Lattner
3d81fee851
Initial early support for non-register operands, like immediates
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25952 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 02:16:44 +00:00
Chris Lattner
eb8146b5ee
implementation of some methods for inlineasm
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25951 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-04 02:13:02 +00:00
Chris Lattner
8666249ad6
Handle another case exposed on X86.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25949 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-03 23:50:46 +00:00
Chris Lattner
593c95878b
Fix a nasty problem on two-address machines in the following situation:
...
store EAX -> [ss#0]
[ss#0] += 1
...
use(EAX)
In this case, it is not valid to rewrite this as:
store EAX -> [ss#0]
EAX += 1
store EAX -> [ss#0] ;;; this would also delete the store above
...
use(EAX)
... because EAX is not a dead at that point. Keep track of which registers
we are allowed to clobber, and which ones we aren't, and don't clobber the
ones we're not supposed to. :)
This should resolve the issues on X86 last night.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25948 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-03 23:28:46 +00:00
Chris Lattner
66cf80f226
significantly simplify the VirtRegMap code by pulling the SpillSlotsAvailable
...
and PhysRegsAvailable maps out into a new AvailableSpills struct. No
functionality change.
This paves the way for a bugfix, coming up next.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25947 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-03 23:13:58 +00:00
Nate Begeman
244d1dccd1
Implement some feedback from sabre
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25946 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-03 22:38:07 +00:00
Nate Begeman
de99629e2a
Add a framework for eliminating instructions that produces undemanded bits.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25945 91177308-0d34-0410-b5e6-96231b3b80d8
2006-02-03 22:24:05 +00:00