Chris Lattner
842436586c
add some new instructions to the classifier. With this, we correctly insert
...
a nop into Freebench/neural, which speeds it up from 136->129s (~5.4%).
llvm-svn: 26590
2006-03-07 07:14:55 +00:00
Chris Lattner
0cd4bd574c
add some comments that describe what we model
...
llvm-svn: 26588
2006-03-07 06:44:19 +00:00
Chris Lattner
4cd6cd499d
Implement a very very simple hazard recognizer for LSU rejects and ctr set/read
...
flushes
llvm-svn: 26587
2006-03-07 06:32:48 +00:00
Chris Lattner
ced780efee
Fix some formatting, when looking for hazards, prefer target nodes over
...
things like copyfromreg.
llvm-svn: 26586
2006-03-07 05:40:43 +00:00
Chris Lattner
ae34bbf56b
add a note
...
llvm-svn: 26585
2006-03-07 04:42:59 +00:00
Jeff Cohen
65b7db8bfd
Keep VC++ building.
...
llvm-svn: 26584
2006-03-07 02:58:13 +00:00
Chris Lattner
174768dde0
add a note
...
llvm-svn: 26583
2006-03-07 02:46:26 +00:00
Evan Cheng
03940bfcfe
- Emit subsections_via_symbols for Darwin.
...
- Conditionalize Dwarf debugging output (Darwin only for now).
llvm-svn: 26582
2006-03-07 02:23:26 +00:00
Evan Cheng
2327759419
Enable Dwarf debugging info.
...
llvm-svn: 26581
2006-03-07 02:02:57 +00:00
Chris Lattner
8a548b3e7d
Teach the alignment handling code to look through constant expr casts and GEPs
...
llvm-svn: 26580
2006-03-07 01:28:57 +00:00
Chris Lattner
d12bd272d3
new regression test
...
llvm-svn: 26579
2006-03-06 23:52:37 +00:00
Chris Lattner
58fe521b5b
Teach instcombine to increase the alignment of memset/memcpy/memmove when
...
the pointer is known to come from either a global variable, alloca or
malloc. This allows us to compile this:
P = malloc(28);
memset(P, 0, 28);
into explicit stores on PPC instead of a memset call.
llvm-svn: 26577
2006-03-06 20:18:44 +00:00
Chris Lattner
86375c060a
update file comment
...
llvm-svn: 26573
2006-03-06 17:58:04 +00:00
Evan Cheng
2fad0ea044
Remove some code that doesn't make sense
...
llvm-svn: 26572
2006-03-06 07:31:44 +00:00
Reid Spencer
9720d6fc61
Make sure command line options are parsed before we try to add the LibPath
...
(-L options) to TheLinker. Problem noticed by Wink Saville.
llvm-svn: 26571
2006-03-06 06:38:19 +00:00
Evan Cheng
8fd9503fbd
Remove SUnit::Priority1: it is re-calculated on demand as number of live
...
range to be generated.
llvm-svn: 26570
2006-03-06 06:08:54 +00:00
Chris Lattner
c6d1fbab70
Hoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where
...
targets can implement them. Make the top-down scheduler non-g5-specific.
Remove the old testing hazard recognizer.
llvm-svn: 26569
2006-03-06 00:22:00 +00:00
Chris Lattner
a0769e790e
Hoist the HazardRecognizer out of the ScheduleDAGList.cpp file to where
...
targets can implement them. Make the top-down scheduler non-g5-specific.
llvm-svn: 26568
2006-03-06 00:20:29 +00:00
Chris Lattner
ca7ed30ee6
Comment fixes
...
llvm-svn: 26567
2006-03-05 23:59:20 +00:00
Chris Lattner
101ce8f304
Don't depend on the C99 copysign function, implement it ourselves.
...
llvm-svn: 26566
2006-03-05 23:57:58 +00:00
Chris Lattner
99767c08ca
new testcase I forgot to check in earlier
...
llvm-svn: 26565
2006-03-05 23:53:04 +00:00
Chris Lattner
5c28fdcae8
When a hazard recognizer needs noops to be inserted, do so. This represents
...
noops as null pointers in the instruction sequence.
llvm-svn: 26564
2006-03-05 23:51:47 +00:00
Chris Lattner
4dae9a978e
add an emitnoop method
...
llvm-svn: 26563
2006-03-05 23:50:42 +00:00
Chris Lattner
af44ead7f3
implement TII::insertNoop
...
llvm-svn: 26562
2006-03-05 23:49:55 +00:00
Chris Lattner
c656f75535
custom lowered nodes are legal too
...
llvm-svn: 26561
2006-03-05 23:49:19 +00:00
Chris Lattner
5fd145d9c4
add a hook to insert a noop
...
llvm-svn: 26560
2006-03-05 23:48:51 +00:00
Chris Lattner
0ee7522721
Implement G5HazardRecognizer as a trivial thing that wants 5 cycles between
...
copyfromreg nodes. Clearly useful!
llvm-svn: 26559
2006-03-05 23:13:56 +00:00
Chris Lattner
ccda7ffffd
Add basic hazard recognizer support. noop insertion isn't complete yet though.
...
llvm-svn: 26558
2006-03-05 22:45:01 +00:00
Andrew Lenharth
89ca36285c
For transforms the behave differently if main goes away, add an option to prevent bugpoint from removing main
...
llvm-svn: 26557
2006-03-05 22:21:36 +00:00
Jeff Cohen
578bf37e22
Fix VC++ compilation error.
...
llvm-svn: 26554
2006-03-05 21:43:37 +00:00
Jim Laskey
45dfae3a50
Breathe some life into a comment.
...
llvm-svn: 26553
2006-03-05 21:20:20 +00:00
Chris Lattner
ef4bef419b
Split the list scheduler into top-down and bottom-up pieces. The priority
...
function of the top-down scheduler are completely bogus currently, and
having (future) PPC specific in this file is also wrong, but this is a
small incremental step.
llvm-svn: 26552
2006-03-05 21:10:33 +00:00
Chris Lattner
a171bcca08
Add a new scheduling type. This is, of course, a hack. Proper factoring
...
will come later.
llvm-svn: 26551
2006-03-05 21:08:06 +00:00
Chris Lattner
49ccda9563
Move the available queue to being inside the ListSchedule method, since it
...
bounds its lifetime.
llvm-svn: 26550
2006-03-05 20:21:55 +00:00
Chris Lattner
4957693551
add a note
...
llvm-svn: 26549
2006-03-05 20:00:08 +00:00
Chris Lattner
f2bed5f46e
Reinstate this now that the offending opposite xform has been removed.
...
llvm-svn: 26548
2006-03-05 19:53:55 +00:00
Chris Lattner
f8cbc8c4ea
Do not fold (add (shl x, c1), (shl c2, c1)) -> (shl (add x, c2), c1),
...
we want to canonicalize the other way.
llvm-svn: 26547
2006-03-05 19:52:57 +00:00
Chris Lattner
93ad7177b4
print arbitrary constant pool entries
...
llvm-svn: 26545
2006-03-05 09:38:03 +00:00
Evan Cheng
e0a6cf78f8
Back out fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) for now.
...
It's causing an infinite loop compiling ldecod on x86 / Darwin.
llvm-svn: 26544
2006-03-05 07:30:16 +00:00
Chris Lattner
827e3f62b0
Add some simple copysign folds
...
llvm-svn: 26543
2006-03-05 05:30:57 +00:00
Chris Lattner
4b4b3e6cbb
Codegen copysign[f] into a FCOPYSIGN node
...
llvm-svn: 26542
2006-03-05 05:09:38 +00:00
Chris Lattner
6b0947c277
Copysign needs to be expanded everywhere. Note that Alpha and IA64 should
...
implement copysign as a native op if they have it.
llvm-svn: 26541
2006-03-05 05:08:37 +00:00
Chris Lattner
9f589d65a1
Add a copysign node
...
llvm-svn: 26540
2006-03-05 05:06:40 +00:00
Chris Lattner
55fbd49ca9
add a note for something evan noticed
...
llvm-svn: 26539
2006-03-05 01:15:18 +00:00
Chris Lattner
43e9ec760b
Make vector narrowing more effective, implementing
...
Transforms/InstCombine/vec_narrow.ll. This add support for narrowing
extract_element(insertelement) also.
llvm-svn: 26538
2006-03-05 00:22:33 +00:00
Chris Lattner
1acc82fcb2
new testcase for vector narrowing.
...
llvm-svn: 26537
2006-03-05 00:21:28 +00:00
Chris Lattner
7d2423c91f
Implemented.
...
llvm-svn: 26536
2006-03-04 23:33:44 +00:00
Chris Lattner
cd57ff4fb6
fold (mul (add x, c1), c2) -> (add (mul x, c2), c1*c2)
...
fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2)
This allows us to compile CodeGen/PowerPC/addi-reassoc.ll into:
_test1:
slwi r2, r4, 4
add r2, r2, r3
lwz r3, 36(r2)
blr
_test2:
mulli r2, r4, 5
add r2, r2, r3
lbz r2, 11(r2)
extsb r3, r2
blr
instead of:
_test1:
addi r2, r4, 2
slwi r2, r2, 4
add r2, r3, r2
lwz r3, 4(r2)
blr
_test2:
addi r2, r4, 2
mulli r2, r2, 5
add r2, r3, r2
lbz r2, 1(r2)
extsb r3, r2
blr
llvm-svn: 26535
2006-03-04 23:33:26 +00:00
Chris Lattner
69ca9936f4
new testcase
...
llvm-svn: 26534
2006-03-04 23:31:49 +00:00
Chris Lattner
805838e63e
Fix a crash compiling Obsequi
...
llvm-svn: 26529
2006-03-04 21:48:01 +00:00