Chris Lattner
5efedae9ae
Turn on the new isel by default. Here are some fun numbers
...
with a release-asserts build on x86-64-darwin10:
LLC Size:
Old: 15,426,852
New: 12,759,140 (down 2.7M)
LLI Size:
Old: 9,926,876
New: 8,864,292 (down 1.1M)
X86ISelDAGToDAG.o size:
Old: 1,401,232
New: 162,868 (down 1.3M)
Time to build X86ISelDAGToDAG.o:
Old: 67.147u 2.060s 1:09.78
New: 4.234u 0.387s 0:04.77
llvm-svn: 97475
2010-03-01 19:05:25 +00:00
Devang Patel
f05e20ef3c
Remove dead test.
...
llvm-svn: 97474
2010-03-01 19:04:23 +00:00
Devang Patel
cdb2c39383
Replace test case that uses @llvm.dbg.* intrinsic with a test that uses metadata.
...
llvm-svn: 97473
2010-03-01 19:02:51 +00:00
Torok Edwin
de233f5c2b
Missed a \n in previous commit.
...
llvm-svn: 97472
2010-03-01 19:00:55 +00:00
Torok Edwin
2f53637d40
Add command-line flag to tblgen to turn off generating comments for the new
...
isel (defaults it to generate comments).
This reduces the size of the generated source file.
llvm-svn: 97470
2010-03-01 18:49:10 +00:00
Chris Lattner
b65ac4a796
Accelerate isel dispatch for tables that start with a top-level
...
OPC_SwitchOpcode to use a table lookup instead of having to go
through the interpreter for this.
llvm-svn: 97469
2010-03-01 18:47:11 +00:00
Devang Patel
be1150d535
These two tests check whether oprimizer safely ignores @llvm.dbg.stoppoint intrinsic or not. This intrinsic is not used anymore.
...
llvm-svn: 97468
2010-03-01 18:45:28 +00:00
John McCall
e5b0ef9279
Don't potentially read past the end of the fill data when making a NaN from
...
an APInt.
llvm-svn: 97467
2010-03-01 18:38:45 +00:00
Devang Patel
271f21327d
This test checks whether LICM ignores @llvm.dbg.stoppoint intrinsics appropriately or not. Now, llvm does not use this intrinsic. Remove this test.
...
llvm-svn: 97466
2010-03-01 18:32:27 +00:00
Devang Patel
6853e2432e
Rewrite test to test VLA using new debug info encoding scheme.
...
llvm-svn: 97465
2010-03-01 18:30:58 +00:00
Devang Patel
c56aee014c
Remove this generic debug info intrinsic test. LLVM does not use this llvm.dbg.stoppoint intrinsic anymore. There are tests to check new implementation, which attaches location information directly with an instruction using metadata.
...
llvm-svn: 97464
2010-03-01 18:30:08 +00:00
Dan Gohman
99c98139c7
Fix optimization of ISD::TRUNCATE on vector operands. Based on a patch
...
by Micah Villmow for PR6335.
llvm-svn: 97461
2010-03-01 17:59:21 +00:00
Dan Gohman
6b91ee1f38
Add explicit keywords.
...
llvm-svn: 97460
2010-03-01 17:56:46 +00:00
Dan Gohman
6d21428325
Add a comment.
...
llvm-svn: 97459
2010-03-01 17:56:04 +00:00
Dan Gohman
3691dbc5cf
Add some debug output to LoopSimplify.
...
llvm-svn: 97458
2010-03-01 17:55:27 +00:00
Dan Gohman
eeaf59db09
Add the alignstack keyword.
...
llvm-svn: 97457
2010-03-01 17:53:39 +00:00
Dan Gohman
5e58ab0b56
LLVM instruction syntax doesn't have trailing semicolons.
...
llvm-svn: 97456
2010-03-01 17:53:15 +00:00
Dan Gohman
3065dbd8e0
Spelling fixes.
...
llvm-svn: 97454
2010-03-01 17:51:02 +00:00
Dan Gohman
c08c48c9f3
Spelling fixes.
...
llvm-svn: 97453
2010-03-01 17:49:51 +00:00
Dan Gohman
296af95bf9
Whitespace cleanups.
...
llvm-svn: 97452
2010-03-01 17:47:21 +00:00
Dan Gohman
5cffef564c
Use Doxygen comment syntax.
...
llvm-svn: 97451
2010-03-01 17:45:15 +00:00
Dan Gohman
0d46f3e9e6
This is now done.
...
llvm-svn: 97450
2010-03-01 17:43:57 +00:00
Dan Gohman
47608d937a
Fix a missing newline in debug output.
...
llvm-svn: 97449
2010-03-01 17:42:55 +00:00
Dan Gohman
25af6486ae
Prune #includes.
...
llvm-svn: 97448
2010-03-01 17:42:17 +00:00
Dan Gohman
f244a308c4
Fix spelling.
...
llvm-svn: 97447
2010-03-01 17:41:39 +00:00
Dan Gohman
4fc1d1236f
Don't print "Modified" for passes which haven't modified anything.
...
llvm-svn: 97446
2010-03-01 17:34:28 +00:00
Nathan Keynes
0226482410
Add JIT support to the TODO list (test commit)
...
llvm-svn: 97443
2010-03-01 10:40:41 +00:00
Chris Lattner
19b59d2278
Emit type checks late instead of early, this encourages
...
structural matching code to be factored and shared this
shrinks the X86 isel table from 86537 to 83890 bytes.
llvm-svn: 97442
2010-03-01 07:54:59 +00:00
Chris Lattner
f62ad24616
some trivial microoptimizations.
...
llvm-svn: 97441
2010-03-01 07:43:08 +00:00
Chris Lattner
4baff2da00
Emit a redundant check for immediates at root context, e.g. (imm 0).
...
This allows formation of OpcodeSwitch for top level patterns, in
particular on X86. This saves about 1K of data space in the x86
table and makes the dispatch much more efficient.
llvm-svn: 97440
2010-03-01 07:27:07 +00:00
Chris Lattner
cdfa80eaaf
eliminate the CheckMultiOpcodeMatcher code and have each
...
ComplexPattern at the root be generated multiple times, once
for each opcode they are part of. This encourages factoring
because the opcode checks get treated just like everything
else in the matcher.
llvm-svn: 97439
2010-03-01 07:17:40 +00:00
Chris Lattner
8529ea0237
add a new OPC_SwitchOpcode which is semantically equivalent
...
to a scope where every child starts with a CheckOpcode, but
executes more efficiently. Enhance DAGISelMatcherOpt to
form it.
This also fixes a bug in CheckOpcode: apparently the SDNodeInfo
objects are not pointer comparable, we have to compare the
enum name.
llvm-svn: 97438
2010-03-01 06:59:22 +00:00
Chris Lattner
a3ca8f3e2d
pull MarkFlagResult out from between an EmitNode/CompleteMatch
...
pair. This encourages MorphNodeTo formation, this gets us 200
more MorphNodeTo's on X86 and shrinks the table a bit.
llvm-svn: 97434
2010-03-01 02:33:14 +00:00
Chris Lattner
c63cbf5105
enhance RecordNode and RecordChild comments to indicate what
...
slot they're recording into, no functionality change.
llvm-svn: 97433
2010-03-01 02:24:17 +00:00
Chris Lattner
17b56423d9
Emit redundant opcode checks for andimm and orimm tests at root
...
so that we get grouping at the top level.
Add an optimization to reorder type check & record nodes
after opcode checks. We prefer to expose tree shape
matching which improves grouping and will enhance the next
optimization.
llvm-svn: 97432
2010-03-01 02:15:34 +00:00
Chris Lattner
ac55b2ddbc
inline the node transforms and node predicates into the generated
...
dispatcher method. This eliminates the dependence of the new isel's
generated code on the old isel's predicates, however some random
hand written isel code still uses them.
llvm-svn: 97431
2010-03-01 01:54:19 +00:00
Chris Lattner
44432b5fd6
simplify some code now that chain/flag results are not stored in
...
the vtlist for emitnode.
llvm-svn: 97429
2010-02-28 23:00:47 +00:00
Chris Lattner
3501066119
don't emit useless functions. These were producing
...
warnings in release-assert builds if there were no cases.
llvm-svn: 97428
2010-02-28 22:57:03 +00:00
Mikhail Glushenkov
47b3719d4b
80-col violations/trailing whitespace.
...
llvm-svn: 97427
2010-02-28 22:54:30 +00:00
Chris Lattner
4408939f12
eliminate GetInt1/2
...
llvm-svn: 97426
2010-02-28 22:38:43 +00:00
Chris Lattner
afa7d2eacc
hoist the new isel interpreter out of DAGISelHeader.h
...
(which gets #included into the middle of each
target's DAGISel class) into a .cpp file where it is
only compiled once.
llvm-svn: 97425
2010-02-28 22:37:22 +00:00
Chris Lattner
d49712e905
change a few opcodes to use VBRs instead of embedding
...
immediate sizes into the opcode.
llvm-svn: 97423
2010-02-28 22:14:32 +00:00
Chris Lattner
34440d39ab
move all the opcodes out of DAGISelHeader.h (which gets
...
#included into the middle of each isel class) into a real
header.
llvm-svn: 97421
2010-02-28 21:58:42 +00:00
Chris Lattner
f571d51b6a
resolve a fixme by using hte new flag.
...
llvm-svn: 97420
2010-02-28 21:56:16 +00:00
Chris Lattner
6f5b656bbf
enhance the EmitNode/MorphNodeTo operands to take a bit that
...
specifies whether there is an output flag or not. Use this
instead of redundantly encoding the chain/flag results in the
output vtlist.
llvm-svn: 97419
2010-02-28 21:53:42 +00:00
Chris Lattner
61a0c6674e
enhance the new isel to handle the 'node already exists'
...
case of MorphNodeTo directly.
llvm-svn: 97417
2010-02-28 21:36:14 +00:00
Chris Lattner
2cda94eb86
use MorphNodeTo instead of SelectNodeTo. SelectNodeTo
...
is just a silly wrapper around MorphNodeTo.
llvm-svn: 97416
2010-02-28 20:55:18 +00:00
Chris Lattner
9599b6a5e9
enhance the new isel to use SelectNodeTo for most patterns,
...
even some the old isel didn't. There are several parts of
this that make me feel dirty, but it's no worse than the
old isel. I'll clean up the parts I can do without ripping
out the old one next.
llvm-svn: 97415
2010-02-28 20:49:53 +00:00
Erick Tryzelaar
264323d31e
Add support getting the operands of a User to ocaml.
...
llvm-svn: 97414
2010-02-28 20:45:03 +00:00
Erick Tryzelaar
ff1a75de6d
Add support for global aliases to ocaml.
...
llvm-svn: 97413
2010-02-28 20:44:58 +00:00