Chris Lattner
00f2e4b6d6
remove dead code, simplify.
...
llvm-svn: 97510
2010-03-01 22:19:47 +00:00
Chris Lattner
d39f75ba39
Fix PR2590 by making PatternSortingPredicate actually be
...
ordered correctly. Previously it would get in trouble when
two patterns were too similar and give them nondet ordering.
We force this by using the record ID order as a fallback.
The testsuite diff is due to alpha patterns being ordered
slightly differently, the change is a semantic noop afaict:
< lda $0,-100($16)
---
> subq $16,100,$0
llvm-svn: 97509
2010-03-01 22:09:11 +00:00
Chris Lattner
664ac989ff
tolerate factoring the *last* node for CellSPU.
...
llvm-svn: 97508
2010-03-01 22:04:33 +00:00
Evan Cheng
87d50aa18a
Remove the optimize for code size limitation on r67917. Optimize 64-bit imul by constants into leas + shl regardless if optimizing for code size. The size saving from using imulq isn't worth it. Also, the lea and shl instructions may expose further optimization.
...
llvm-svn: 97507
2010-03-01 22:00:11 +00:00
Chris Lattner
33758dcad2
optimize tblgen compile time by eliminating the old isel.
...
llvm-svn: 97504
2010-03-01 21:49:54 +00:00
Dan Gohman
5341a86450
Make llc opt into the addPassesToEmitFile verify pass.
...
llvm-svn: 97502
2010-03-01 21:45:21 +00:00
Chris Lattner
55ef1ebe52
remove a terrible hack that disabled assertions from this file because of build time
...
problems. rdar://7697850.
llvm-svn: 97500
2010-03-01 21:20:46 +00:00
Jakob Stoklund Olesen
115da88f01
Use methods to determine if a LiveInterval is spillable.
...
Don't accidentally produce unspillable intervals for deeply nested loops.
llvm-svn: 97496
2010-03-01 20:59:38 +00:00
Devang Patel
aaecdaeb5d
Remove tests that checks @llvm.dbg.stoppoint handling.
...
llvm-svn: 97493
2010-03-01 20:33:48 +00:00
Chris Lattner
d35a728a34
stop using anders-aa
...
llvm-svn: 97492
2010-03-01 20:24:50 +00:00
Chris Lattner
8c1132746b
stop using anders-aa
...
llvm-svn: 97491
2010-03-01 20:24:05 +00:00
Chris Lattner
7d2c1592f3
remove andersen's tests.
...
llvm-svn: 97490
2010-03-01 20:23:15 +00:00
Devang Patel
2e7ddea828
@llvm.dbg.stoppoint intrinsic is not used anymore.
...
Delete dead testcase.
llvm-svn: 97489
2010-03-01 19:46:08 +00:00
Ted Kremenek
5c74a4b00b
Update CMake build.
...
llvm-svn: 97488
2010-03-01 19:42:47 +00:00
Devang Patel
4e728b3823
Update to use new debug info encoding scheme. As a bonus, now the test passes!
...
llvm-svn: 97487
2010-03-01 19:41:26 +00:00
Chris Lattner
94fd3388b0
don't emit the old sdnodexform stuff for the new isel.
...
llvm-svn: 97486
2010-03-01 19:39:15 +00:00
Chris Lattner
3780ca6ef2
stop using generated sdnodexforms.
...
llvm-svn: 97485
2010-03-01 19:38:53 +00:00
Chris Lattner
883b868765
note that andersaa was removed in 2.7
...
llvm-svn: 97484
2010-03-01 19:29:17 +00:00
Chris Lattner
5ea3e65929
remove anders-aa from mainline, it isn't maintained and is
...
tantalyzing enough that people keep trying to use it.
llvm-svn: 97483
2010-03-01 19:24:17 +00:00
Johnny Chen
718ed8a6d5
Added STRHT for disassembly only and fixed a bug in AI3sthpo class where the W
...
bit should be set to 0 instead of 1.
llvm-svn: 97481
2010-03-01 19:22:00 +00:00
Devang Patel
ed56bcfd91
Remove this test because it checks wheter optimizer handled @llvm.dbg.global_variable appropriately or not. LLVM does not use this scheme to encode debug info for global variables any more.
...
llvm-svn: 97480
2010-03-01 19:14:25 +00:00
Devang Patel
d8425df136
Remove test to check bugfix in handing debug info for global variables using intrinsics. Now, debug info for global variable is encoded using metadata. The old code path is now history and there is no need to have a test to check a bug fix in old code path.
...
llvm-svn: 97477
2010-03-01 19:09:55 +00:00
Chris Lattner
2563e83759
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
9aef3e5de1
Remove dead test.
...
llvm-svn: 97474
2010-03-01 19:04:23 +00:00
Devang Patel
dd596b1248
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
04a0eab01b
Missed a \n in previous commit.
...
llvm-svn: 97472
2010-03-01 19:00:55 +00:00
Torok Edwin
12b02282d9
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
c1a3190870
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
890644e3a7
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
c6dbe30e88
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
1392621e0f
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
3bf0571bb0
Rewrite test to test VLA using new debug info encoding scheme.
...
llvm-svn: 97465
2010-03-01 18:30:58 +00:00
Devang Patel
4aefd92040
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
c3c3c6829f
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
b0e07d53c1
Add explicit keywords.
...
llvm-svn: 97460
2010-03-01 17:56:46 +00:00
Dan Gohman
904d34c90f
Add a comment.
...
llvm-svn: 97459
2010-03-01 17:56:04 +00:00
Dan Gohman
39917c7c81
Add some debug output to LoopSimplify.
...
llvm-svn: 97458
2010-03-01 17:55:27 +00:00
Dan Gohman
7886c49d5c
Add the alignstack keyword.
...
llvm-svn: 97457
2010-03-01 17:53:39 +00:00
Dan Gohman
882c95605f
LLVM instruction syntax doesn't have trailing semicolons.
...
llvm-svn: 97456
2010-03-01 17:53:15 +00:00
Dan Gohman
01b443fdd3
Spelling fixes.
...
llvm-svn: 97454
2010-03-01 17:51:02 +00:00
Dan Gohman
8b0a419eb1
Spelling fixes.
...
llvm-svn: 97453
2010-03-01 17:49:51 +00:00
Dan Gohman
574e72d17d
Whitespace cleanups.
...
llvm-svn: 97452
2010-03-01 17:47:21 +00:00
Dan Gohman
2055938113
Use Doxygen comment syntax.
...
llvm-svn: 97451
2010-03-01 17:45:15 +00:00
Dan Gohman
312d604ee2
This is now done.
...
llvm-svn: 97450
2010-03-01 17:43:57 +00:00
Dan Gohman
96d45008a6
Fix a missing newline in debug output.
...
llvm-svn: 97449
2010-03-01 17:42:55 +00:00
Dan Gohman
0c39a35457
Prune #includes.
...
llvm-svn: 97448
2010-03-01 17:42:17 +00:00
Dan Gohman
a269a0a667
Fix spelling.
...
llvm-svn: 97447
2010-03-01 17:41:39 +00:00
Dan Gohman
74b189fcb2
Don't print "Modified" for passes which haven't modified anything.
...
llvm-svn: 97446
2010-03-01 17:34:28 +00:00
Nathan Keynes
42a5be5121
Add JIT support to the TODO list (test commit)
...
llvm-svn: 97443
2010-03-01 10:40:41 +00:00
Chris Lattner
86878b4a1e
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
e89ca7c146
some trivial microoptimizations.
...
llvm-svn: 97441
2010-03-01 07:43:08 +00:00
Chris Lattner
a44697c394
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
053a28a397
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
f4d1775263
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
db5b73a77f
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
4634d9beef
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
90b1b9d984
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
58e7dad842
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
560169d5c4
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
d86751711d
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
abd56bde0e
80-col violations/trailing whitespace.
...
llvm-svn: 97427
2010-02-28 22:54:30 +00:00
Chris Lattner
53cf6b8444
eliminate GetInt1/2
...
llvm-svn: 97426
2010-02-28 22:38:43 +00:00
Chris Lattner
5ef43cec36
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
d303a365df
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
16e601eea1
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
b6ac685606
resolve a fixme by using hte new flag.
...
llvm-svn: 97420
2010-02-28 21:56:16 +00:00
Chris Lattner
a838264af1
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
af197502d6
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
9d67dcadce
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
102a8a01e6
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
84f5ba80df
Add support getting the operands of a User to ocaml.
...
llvm-svn: 97414
2010-02-28 20:45:03 +00:00
Erick Tryzelaar
9190a2af9d
Add support for global aliases to ocaml.
...
llvm-svn: 97413
2010-02-28 20:44:58 +00:00
Erick Tryzelaar
e533a41c24
Add support for inserting inline asm to ocaml.
...
llvm-svn: 97412
2010-02-28 20:44:53 +00:00
Chris Lattner
90e7924cf0
add some random nounwinds.
...
llvm-svn: 97411
2010-02-28 20:36:49 +00:00
Chris Lattner
5cc165c67c
I'm removing andersaa after the branch is made.
...
llvm-svn: 97409
2010-02-28 18:57:59 +00:00
Chris Lattner
b1af865aa6
simplify this code, return only ever has zero or one operands.
...
llvm-svn: 97408
2010-02-28 18:53:13 +00:00
John McCall
c12b133d00
Properly clear all the extra bits in a significand when making a NaN from an
...
APInt. Be certain to set the integer bit in an x87 extended-precision
significand so that we don't accidentally make a pseudo-NaN.
llvm-svn: 97382
2010-02-28 12:49:50 +00:00
John McCall
512b650210
Add an override to StringRef::getAsInteger which parses into an APInt.
...
It gets its own implementation totally divorced from the (presumably
performance-sensitive) routines which parse into a uint64_t.
Add APInt::operator|=(uint64_t), which is situationally much better than
using a full APInt.
llvm-svn: 97381
2010-02-28 09:55:58 +00:00
Erick Tryzelaar
28db1a3e61
Add support for getting a null pointer.
...
llvm-svn: 97380
2010-02-28 09:46:27 +00:00
Erick Tryzelaar
272d62bc5a
Add a way to look up a type by it's name in a module.
...
llvm-svn: 97379
2010-02-28 09:46:21 +00:00
Erick Tryzelaar
6fdb7a6547
Add replace_all_uses_with to ocaml.
...
llvm-svn: 97378
2010-02-28 09:46:16 +00:00
Erick Tryzelaar
06894b3824
Add support for global variables in an address space for llvm-c and ocaml.
...
llvm-svn: 97377
2010-02-28 09:46:13 +00:00
Erick Tryzelaar
0fb26ef01f
Add indirect br support to llvm-c and ocaml.
...
llvm-svn: 97376
2010-02-28 09:46:06 +00:00
Erick Tryzelaar
d8531faf95
Add metadata functions to llvm-c and ocaml.
...
llvm-svn: 97375
2010-02-28 09:45:59 +00:00
Chris Lattner
56c50da3f6
remove redundant instruction.
...
llvm-svn: 97374
2010-02-28 07:23:21 +00:00
Erick Tryzelaar
4c340c7f7f
Add the new builder arthmetic instructions to llvm-c and ocaml.
...
llvm-svn: 97372
2010-02-28 05:51:43 +00:00
Erick Tryzelaar
a8053dfd27
Add the new union arthmetic instructions to llvm-c and ocaml.
...
llvm-svn: 97371
2010-02-28 05:51:33 +00:00
Erick Tryzelaar
318317961c
Add generic binary op and cast builder functions.
...
llvm-svn: 97370
2010-02-28 05:51:27 +00:00
Erick Tryzelaar
eaaac73c1d
Rename ocaml vmcore tests to make it easier to insert tests.
...
llvm-svn: 97369
2010-02-28 05:51:21 +00:00
Erick Tryzelaar
5bfa919e66
Fix incorrect uses of an ocaml llbuilder without extracting it from ocaml.
...
llvm-svn: 97368
2010-02-28 05:51:16 +00:00
Erick Tryzelaar
4417431e0e
Remove malloc and free from the ocaml bindings.
...
llvm-svn: 97367
2010-02-28 05:51:09 +00:00
Bob Wilson
1136166ee9
Revert r97245 which seems to be causing performance problems.
...
llvm-svn: 97366
2010-02-28 05:34:05 +00:00
John McCall
dcb9a7ad3d
Teach APFloat how to create both QNaNs and SNaNs and with arbitrary-width
...
payloads. APFloat's internal folding routines always make QNaNs now,
instead of sometimes making QNaNs and sometimes SNaNs depending on the
type.
llvm-svn: 97364
2010-02-28 02:51:25 +00:00
Chris Lattner
abb1c7912e
enhance EmitNodeMatcher to keep track of the recorded slot numbers
...
it will populate.
llvm-svn: 97363
2010-02-28 02:41:25 +00:00
Chris Lattner
c3f80e0806
add infrastructure to support forming selectnodeto. Not used yet
...
because I have to go on another detour first.
llvm-svn: 97362
2010-02-28 02:31:26 +00:00
Dan Gohman
34021b7445
Don't try to replace physical registers when doing CSE.
...
llvm-svn: 97360
2010-02-28 01:33:43 +00:00
Dan Gohman
0d8a9af7b8
Add a flag to addPassesToEmit* to disable the Verifier pass run
...
after LSR, so that clients can opt in.
llvm-svn: 97357
2010-02-28 00:41:59 +00:00
Chris Lattner
99e53b3b33
Generalize my hack to use SDNodeInfo to find out when a
...
node is always guaranteed to have a particular type
instead of hacking in ISD::STORE explicitly. This allows
us to use implied types for a broad range of nodes, even
target specific ones.
llvm-svn: 97355
2010-02-28 00:22:30 +00:00
Dan Gohman
bdd6405f29
Implement XMM subregs.
...
Extracting the low element of a vector is now done with EXTRACT_SUBREG,
and the zero-extension performed by load movss is now modeled with
SUBREG_TO_REG, and so on.
Register-to-register movss and movsd are no longer considered copies;
they are two-address instructions which insert a scalar into a vector.
llvm-svn: 97354
2010-02-28 00:17:42 +00:00
Dan Gohman
6fb6a59766
Don't unconditionally suppress hoisting of instructions with implicit
...
defs or uses. The regular def and use checking below covers them, and
can be more precise. It's safe to hoist an instruction with a dead
implicit def if the register isn't live into the loop header.
llvm-svn: 97352
2010-02-28 00:08:44 +00:00
Dan Gohman
45e7ffc350
Add nounwinds.
...
llvm-svn: 97349
2010-02-27 23:53:53 +00:00
Dan Gohman
8c5d683aa9
The mayHaveSideEffects flag is no longer used.
...
llvm-svn: 97348
2010-02-27 23:47:46 +00:00
Chris Lattner
278606b06e
change CheckOpcodeMatcher to hold the SDNodeInfo instead of
...
the opcode name. This gives the optimizer more semantic info.
llvm-svn: 97346
2010-02-27 21:48:43 +00:00
Chris Lattner
f159afc951
remove a bogus pattern, which had the same pattern as STDU
...
but codegen'd differently. This really wanted to use some
sort of subreg to get the low 4 bytes of the G8RC register
or something. However, it's invalid and nothing is testing
it, so I'm just zapping the bogosity.
llvm-svn: 97345
2010-02-27 21:15:32 +00:00
Chris Lattner
fb2a0f20dd
add another case from the ppc backend. This is obviously a huge and
...
dissatisfying hack. TODO: Improve it. :)
llvm-svn: 97317
2010-02-27 08:19:47 +00:00
Chris Lattner
a2075d44ad
fix an incorrect (overly conservative) predicate.
...
llvm-svn: 97316
2010-02-27 08:18:55 +00:00
Chris Lattner
21a7bf3fab
fix logic in DEBUG.
...
llvm-svn: 97315
2010-02-27 08:13:23 +00:00
Chris Lattner
2586c86a8a
teach the optimizer that opcode == ISD::STORE is contradictory
...
with getType() == MVT::i32 etc. Teach it that two different
integer constants are contradictory. This cuts 1K off the X86
table, down to 98k
llvm-svn: 97314
2010-02-27 08:11:15 +00:00
Chris Lattner
2af7e3dceb
fix grammaro's pointed out by daniel
...
llvm-svn: 97313
2010-02-27 07:50:40 +00:00
Chris Lattner
c577b816fc
Teach the grouper some simple tricks about looking contradictory
...
predicates. For example if we have:
Scope:
CheckType i32
ABC
CheckType f32
DEF
CheckType i32
GHI
Then we know that we can transform this into:
Scope:
CheckType i32
Scope
ABC
GHI
CheckType f32
DEF
This reorders the check for the 'GHI' predicate above
the check for the 'DEF' predidate. However it is safe to do this
in this situation because we know that a node cannot have both an
i32 and f32 type.
We're now doing more factoring that the old isel did.
llvm-svn: 97312
2010-02-27 07:49:13 +00:00
Evan Cheng
228c31f045
Re-apply 97040 with fix. This survives a ppc self-host llvm-gcc bootstrap.
...
llvm-svn: 97310
2010-02-27 07:36:59 +00:00
Chris Lattner
7f28b8e8eb
use DEBUG instead of DebugFlag directly so that this
...
respects -debug-only=something-else.
llvm-svn: 97307
2010-02-27 06:51:44 +00:00
Chris Lattner
d9e1e83e3b
implement a new optimization to sink pattern predicates (like isSSE1)
...
as deeply into the pattern as we can get away with. In pratice, this
means "all the way to to the emitter code, but not across
ComplexPatterns". This substantially increases the amount of factoring
we get.
llvm-svn: 97305
2010-02-27 06:22:57 +00:00
Bill Wendling
e7179e8b76
The TType is always absptr on Mach-O...at least for now.
...
llvm-svn: 97295
2010-02-27 01:05:51 +00:00
Jeffrey Yasskin
67c0aece75
Fix the ocaml bindings for the bitcode reader.
...
llvm_get_module_provider() was returning a value of the wrong type.
llvm-svn: 97290
2010-02-27 00:25:18 +00:00
Chris Lattner
d887f1da73
fix PR6414, a nondeterminism issue in IPSCCP which was because
...
of a subtle interation in a loop operating in densemap order.
llvm-svn: 97288
2010-02-27 00:07:42 +00:00
Chris Lattner
65d3a0a5f8
Fix rdar://7694996 a miscompile of 183.equake from my patch yesterday,
...
confusing the old MAT variable with the new GlobalType one. This caused
us to promote the @disp global pointer into:
@disp.body = internal global double*** undef
instead of:
@disp.body = internal global [3 x double**] undef
llvm-svn: 97285
2010-02-26 23:42:13 +00:00
Chris Lattner
da5fcdace0
remove dead code, by this point all uses of CI are gone.
...
llvm-svn: 97283
2010-02-26 23:35:25 +00:00
Jeffrey Yasskin
a433ee3302
Test that docs are updating.
...
llvm-svn: 97279
2010-02-26 22:25:06 +00:00
John McCall
b42cc681ba
Make APFloat's string-parsing routines a bit safer against very large exponents.
...
llvm-svn: 97278
2010-02-26 22:20:41 +00:00
Bill Wendling
c3a9376215
A much cleaner (and less code!) way of inserting the correct amount of padding
...
for alignment into the LSDA. If the TType base offset is emitted, then put the
padding there. Otherwise, put it in the call site table length. There will be no
conflict between the two sites when placing the padding in one place.
llvm-svn: 97277
2010-02-26 22:17:52 +00:00
Johnny Chen
38e7bb6f34
Added the follwoing 32-bit Thumb instructions for disassembly only:
...
o Parallel addition and subtraction, signed/unsigned
o Miscellaneous operations: QADD, QDADD, QSUB, QDSUB
o Unsigned sum of absolute differences [and accumulate]: USAD8, USADA8
o Signed/Unsigned saturate: SSAT, SSAT16, USAT, USAT16
o Signed multiply accumulate long (halfwords): SMLAL<x><y>
o Signed multiply accumulate/subtract [long] (dual): SMLAD[x], SMLALD[X], SMLSD[X], SMLSLD[X]
o Signed dual multiply add/subtract [long]: SMUAD[X], SMUSD[X]
llvm-svn: 97276
2010-02-26 22:04:29 +00:00
Jakob Stoklund Olesen
17d54920d7
Merge PPC instructions FMRS and FMRD into a single FMR instruction.
...
This is possible because F8RC is a subclass of F4RC. We keep FMRSD around so
fextend has a pattern.
Also allow folding of memory operands on FMRSD.
llvm-svn: 97275
2010-02-26 21:53:24 +00:00
Dan Gohman
b53dababc4
Fix grammaro in a comment.
...
llvm-svn: 97273
2010-02-26 21:45:37 +00:00
Dan Gohman
1b9dd248e4
Add Revision keywords to these files, as it's common for them to be
...
copied out of the source tree.
llvm-svn: 97270
2010-02-26 21:38:04 +00:00
Bill Wendling
fea6c4efc7
Comment typo.
...
llvm-svn: 97269
2010-02-26 21:31:01 +00:00
Chris Lattner
134a9dc114
don't build edis if the x86 target isn't enabld.
...
llvm-svn: 97268
2010-02-26 21:26:33 +00:00
Dan Gohman
94fa92b441
Improve the vim code for highlighting trailing whitespace and lines
...
longer than 80 columns. This replaces the heavy-handed "textwidth"
mechanism, and makes the trailing-whitespace highlighting lazy so
that it isn't constantly jumping on the user during typing.
llvm-svn: 97267
2010-02-26 21:24:46 +00:00
Tanya Lattner
0569db0699
Test autoupdate.
...
llvm-svn: 97266
2010-02-26 21:23:59 +00:00
Tanya Lattner
7bb1a6e306
Test auto update.
...
llvm-svn: 97265
2010-02-26 21:19:09 +00:00
Dan Gohman
91f97f094f
Add the alignstack keyword.
...
llvm-svn: 97264
2010-02-26 21:16:17 +00:00
Dan Gohman
ae53e2c1f0
Remove bogus Updated line.
...
llvm-svn: 97263
2010-02-26 21:15:49 +00:00
Jakob Stoklund Olesen
ddbf7a858e
Use the right floating point load/store instructions in PPCInstrInfo::foldMemoryOperandImpl().
...
The PowerPC floating point registers can represent both f32 and f64 via the
two register classes F4RC and F8RC. F8RC is considered a subclass of F4RC to
allow cross-class coalescing. This coalescing only affects whether registers
are spilled as f32 or f64.
Spill slots must be accessed with load/store instructions corresponding to the
class of the spilled register. PPCInstrInfo::foldMemoryOperandImpl was looking
at the instruction opcode which is wrong.
X86 has similar floating point register classes, but doesn't try to fold
memory operands, so there is no problem there.
llvm-svn: 97262
2010-02-26 21:09:24 +00:00
Jakob Stoklund Olesen
391700872f
Remove dead code
...
llvm-svn: 97261
2010-02-26 21:09:20 +00:00
Jeffrey Yasskin
db341a5282
Remove REQUIRES_EH from the suggested set of make variables, since users can
...
build with exceptions even if LLVM is built without.
llvm-svn: 97260
2010-02-26 20:43:33 +00:00
Benjamin Kramer
7f98b46dc1
Replace a temporary std::string with SmallString.
...
llvm-svn: 97259
2010-02-26 20:28:29 +00:00
Dan Gohman
42f5691d3c
Fix typos in comments.
...
llvm-svn: 97257
2010-02-26 20:18:32 +00:00
Dale Johannesen
dd33104203
Move dbg_value generation to target-independent FastISel,
...
as X86 is currently the only FastISel target. Per review.
llvm-svn: 97255
2010-02-26 20:01:55 +00:00
Dale Johannesen
3e7df345c8
Further constify MDNode* references.
...
llvm-svn: 97252
2010-02-26 19:39:56 +00:00
Dale Johannesen
e6b53047bb
Add type printing for Metadata pseudo.
...
llvm-svn: 97251
2010-02-26 19:38:59 +00:00
Bob Wilson
ed1b0c31a7
Move the EnableFullLoadPRE flag from a separate command-line option to an
...
argument of createGVNPass and set it automatically for -O3.
llvm-svn: 97245
2010-02-26 19:09:47 +00:00
Sanjiv Gupta
f8bd9413d5
disable-mem2reg and disable-gvn options should not be used by the driver.
...
llvm-svn: 97236
2010-02-26 18:38:44 +00:00
Bob Wilson
d4655991c3
Remove unused "NoPRE" parameter in GVN and createGVNPass().
...
llvm-svn: 97235
2010-02-26 18:35:19 +00:00
Chris Lattner
bb592eb9d0
pass in more section kinds, enough to get the .align 0x90
...
stuff to emit optimal nops in the right places.
llvm-svn: 97233
2010-02-26 18:32:26 +00:00
Sanjiv Gupta
ef686dc38d
The cloner has nothing to do if any of the main or ISR entrypoints are not
...
present in the module.
llvm-svn: 97232
2010-02-26 18:32:18 +00:00
Chris Lattner
0521c09d97
fix PR6435 another bug from the MallocInst elimination work.
...
llvm-svn: 97231
2010-02-26 18:23:13 +00:00
Jeffrey Yasskin
f074cb8eea
Set svn:keywords property on docs/Packaging.html.
...
llvm-svn: 97230
2010-02-26 18:07:00 +00:00
Jeffrey Yasskin
56917d1d74
Add to the packaging advice.
...
llvm-svn: 97229
2010-02-26 18:03:43 +00:00
Sanjiv Gupta
2bdbb3c167
Reapply things reverted back in 97220, with the fixed test case.
...
llvm-svn: 97228
2010-02-26 17:59:28 +00:00
Dan Gohman
952f6f98bb
movl is a cheaper way to materialize 0 without clobbering EFLAGS than movabsq.
...
llvm-svn: 97227
2010-02-26 16:49:27 +00:00
Richard Osborne
333300e0df
Fix XCoreTargetLowering::isLegalAddressingMode() to handle VoidTy.
...
Previously LoopStrengthReduce would sometimes be unable to find
a legal formula, causing an assertion failure.
llvm-svn: 97226
2010-02-26 16:44:51 +00:00
Chandler Carruth
663f658d87
Revert r97211 and r97213 to get the build green again.
...
llvm-svn: 97220
2010-02-26 08:43:09 +00:00
Chris Lattner
4835aecd95
add some helpful comments to the emitter
...
llvm-svn: 97219
2010-02-26 08:15:02 +00:00
Chris Lattner
4f9a671a30
switch from my nice hashtable based merging solution to a
...
gross little neighbor merging implementation. This one has
the benefit of not violating the ordering of patterns, so it
generates code that passes tests again.
llvm-svn: 97218
2010-02-26 08:08:41 +00:00
Chris Lattner
1ffcde2f3b
fix same bug in CheckChainCompatibleMatcher::isEqualImpl
...
llvm-svn: 97217
2010-02-26 08:06:02 +00:00
Chris Lattner
a6142a241a
fix a nasty bug in CheckTypeMatcher::isEqualImpl
...
llvm-svn: 97216
2010-02-26 08:05:36 +00:00
Chris Lattner
be5b634cea
finish off the factoring optimization along the lines of the
...
current design. This generates a matcher that successfully
runs, but it turns out that the factoring we're doing violates
the ordering of patterns, so we end up matching (e.g.) movups
where we want movaps. This won't due, but I'll address this in
a follow on patch. It's nice to not be on by default yet! :)
llvm-svn: 97215
2010-02-26 07:36:37 +00:00
Chris Lattner
81129177a3
add a new setNumChildren method for resizing scopes. Tweak getHash() so
...
that we never return a tombstone value, which (thankfully) triggers an
assert in densemap.
llvm-svn: 97214
2010-02-26 07:35:27 +00:00
Sanjiv Gupta
7828ff9535
Currently in LLVM, names of libcalls are assigned during TargetLowering
...
object construction. There is no provision to change them when the
code for a function generated.
So we have to change these names while printing assembly.
llvm-svn: 97213
2010-02-26 07:31:15 +00:00
Chris Lattner
9f960c2d3a
fix the matcher in the presence of multiple scopes: we need to save
...
and restore the entire matcher stack by value. This is because children
we're testing could do moveparent or other things besides just
scribbling on additions to the stack.
llvm-svn: 97212
2010-02-26 07:28:20 +00:00
Sanjiv Gupta
528b1465e5
Before converting an operand to mem, check if it is legal to do so.
...
llvm-svn: 97211
2010-02-26 07:27:35 +00:00
Chris Lattner
044ada532c
this file lacks a run line!
...
llvm-svn: 97208
2010-02-26 02:40:57 +00:00
Dan Gohman
5aa3919218
Fix a typo.
...
llvm-svn: 97206
2010-02-26 02:15:17 +00:00
Dan Gohman
9300486d68
Delete a bunch of redundant predicates.
...
llvm-svn: 97201
2010-02-26 01:14:30 +00:00
Bill Wendling
098c91e95b
Fix comments.
...
llvm-svn: 97200
2010-02-26 01:12:52 +00:00
Jeffrey Yasskin
28c341c38f
Give packagers some advice about how to build LLVM so it's useful to
...
the most users.
llvm-svn: 97198
2010-02-26 00:54:42 +00:00
Bill Wendling
6394521a2b
Add another (and hopefully the last) exception case, where once we recalculate
...
the alignment requirement, if it no longer makes the TType base offset overflow
into extra bytes, then we need to pad to those bytes ourselves.
llvm-svn: 97196
2010-02-26 00:43:54 +00:00
Bill Wendling
6f14f6a962
And should use the correct variable.
...
llvm-svn: 97193
2010-02-26 00:24:25 +00:00
Bill Wendling
47c3269236
Got assertion check backwards.
...
llvm-svn: 97192
2010-02-26 00:22:42 +00:00
Bill Wendling
24c74f1d9c
Catch a corner case where adding the padding to the "TType base offset" field
...
will eliminate the need for padding in the "Call site table length". E.g., if
we have this:
GCC_except_table1:
Lexception1:
.byte 0xff ## @LPStart Encoding = omit
.byte 0x9b ## @TType Encoding = indirect pcrel sdata4
.byte 0x7f ## @TType base offset
.byte 0x03 ## Call site Encoding = udata4
.byte 0x89 ## Call site table length
with padding of 1. We want to emit the padding like this:
GCC_except_table1:
Lexception1:
.byte 0xff ## @LPStart Encoding = omit
.byte 0x9b ## @TType Encoding = indirect pcrel sdata4
.byte 0xff ## @TType base offset
.space 1,0 ## Padding
.byte 0x03 ## Call site Encoding = udata4
.byte 0x89 ## Call site table length
and not with padding on the "Call site table length" entry.
llvm-svn: 97183
2010-02-25 23:52:44 +00:00
Dan Gohman
d0c7fd8598
Fix a few more typos.
...
llvm-svn: 97182
2010-02-25 23:51:27 +00:00
Dan Gohman
f804f182d0
Fix a typo.
...
llvm-svn: 97181
2010-02-25 23:41:41 +00:00
John Criswell
4d377d8c59
Added SAFECode (safecode) to the list of projects to automatically configure.
...
llvm-svn: 97179
2010-02-25 22:57:19 +00:00
Chris Lattner
7939f795f5
rewrite OptimizeGlobalAddressOfMalloc to fix PR6422, some bugs
...
introduced when mallocinst was eliminated.
llvm-svn: 97178
2010-02-25 22:33:52 +00:00
Daniel Dunbar
de277d48f5
tests: Propogate the HOME environment variable through to tests. I'm ambivalent
...
about this, but it can be useful for users who use ccache, since the LLVMC tests
are fond of calling gcc.
llvm-svn: 97171
2010-02-25 22:09:09 +00:00
Bill Wendling
bc4024f72c
Fix HTML.
...
llvm-svn: 97170
2010-02-25 21:23:24 +00:00
Bill Wendling
60aa4dfb53
Make comment more meaningful.
...
llvm-svn: 97169
2010-02-25 21:19:47 +00:00
Dan Gohman
2a8e3777b4
Fix ExpandVectorBuildThroughStack for the case where the
...
operands are themselves vectors. Based on a patch by
Micah Villmow for PR6338.
llvm-svn: 97165
2010-02-25 20:30:49 +00:00
Johnny Chen
3adff378cc
Added the following 32-bit Thumb instructions for disassembly only: SMC, RFE,
...
and SRS.
llvm-svn: 97164
2010-02-25 20:25:24 +00:00
Johnny Chen
871e5b0926
Added the 32-bit Thumb instructions (BXJ) for disassembly only.
...
llvm-svn: 97163
2010-02-25 19:05:29 +00:00
Chris Lattner
f7fc2d8b86
change the scope node to include a list of children to be checked
...
instead of to have a chained series of scope nodes. This makes
the generated table smaller, improves the efficiency of the
interpreter, and make the factoring optimization much more
reasonable to implement.
llvm-svn: 97160
2010-02-25 19:00:39 +00:00
Johnny Chen
e285f70a42
Added the 32-bit Thumb instructions (MRS and MSR) for disassembly only.
...
llvm-svn: 97159
2010-02-25 18:46:43 +00:00
Kevin Enderby
7f99302dc9
This is a patch to the assembler frontend to detect when aligning a text
...
section with TextAlignFillValue and calls EmitCodeAlignment() instead of
calling EmitValueToAlignment(). This allows x86 assembly code to be aligned
with optimal nops.
llvm-svn: 97158
2010-02-25 18:46:04 +00:00
Dan Gohman
048b6485b7
stkrc is gone.
...
llvm-svn: 97156
2010-02-25 18:18:49 +00:00
Dan Gohman
22d11ee6bb
Add the union keyword.
...
llvm-svn: 97155
2010-02-25 18:17:58 +00:00
Dan Gohman
2c50e05587
Merge the advanced getelementptr FAQ into the regular
...
getelementptr FAQ.
llvm-svn: 97154
2010-02-25 18:16:03 +00:00
Daniel Dunbar
68e22cb5a0
Fix TextAlignFillValue in a few places
...
llvm-svn: 97151
2010-02-25 18:07:10 +00:00
Daniel Dunbar
ce33de5b98
Add simple script for finding most-recent-rev-before-N in a git-svn repo; useful
...
when bisecting multiple repos in sync.
llvm-svn: 97150
2010-02-25 18:07:07 +00:00
Johnny Chen
74cca5a989
Added the following 16-bit Thumb instructions for disassembly only: YIELD, WFE,
...
WFI, SEV, SETEND.
llvm-svn: 97149
2010-02-25 17:51:03 +00:00
Chris Lattner
36b5414c4e
remove a dead PatLeaf, I previously changed all uses to use -1 instead.
...
llvm-svn: 97148
2010-02-25 17:39:34 +00:00
Dan Gohman
1ad1499d14
Fix a typo.
...
llvm-svn: 97144
2010-02-25 16:51:31 +00:00
Dan Gohman
8848111952
Clarify the description of pointer types, and move the
...
address space content to its own paragraph.
llvm-svn: 97143
2010-02-25 16:50:07 +00:00
Dan Gohman
a2684dbff0
Teach the constant folder about union types.
...
llvm-svn: 97142
2010-02-25 16:45:19 +00:00
Dan Gohman
935faff0bd
Remove code which assumes it knows how vectors are stored in memory.
...
llvm-svn: 97141
2010-02-25 16:05:33 +00:00
Dan Gohman
e790b61ebd
Add more information to the getSizeOf comment.
...
llvm-svn: 97140
2010-02-25 15:55:28 +00:00
Dan Gohman
91bf1914da
Remove this paragraph. Vectors may not always have the same layout as
...
arrays now.
llvm-svn: 97139
2010-02-25 15:53:42 +00:00
Dan Gohman
9b80f86e5b
Revert r97064. Duncan pointed out that bitcasts are defined in
...
terms of store and load, which means bitcasting between scalar
integer and vector has endian-specific results, which undermines
this whole approach.
llvm-svn: 97137
2010-02-25 15:20:39 +00:00
Nick Lewycky
a72e1af8bf
Make the side-numbering of instructions used by metadata (which is needed to
...
keep track of instructions that return void) per-function. This fixes PR5278.
This breaks backwards compatibility with the metadata format. That's okay
because we haven't released the metadata bitcode yet.
llvm-svn: 97132
2010-02-25 08:30:17 +00:00
Chris Lattner
62702da070
Implement the first half of redundancy factoring: efficiently
...
splitting all the patterns under scope nodes into equality sets
based on their first node. The second step is to rewrite the
graph info a form that exposes the sharing. Before I do this,
I want to redesign the Scope node.
llvm-svn: 97130
2010-02-25 07:45:24 +00:00
Dan Gohman
a9c205cc88
Make LoopSimplify change conditional branches in loop exiting blocks
...
which branch on undef to branch on a boolean constant for the edge
exiting the loop. This helps ScalarEvolution compute trip counts for
loops.
Teach ScalarEvolution to recognize single-value PHIs, when safe, and
ForgetSymbolicName to forget such single-value PHI nodes as apprpriate
in ForgetSymbolicName.
llvm-svn: 97126
2010-02-25 06:57:05 +00:00