Gordon Henriksen [Tue, 25 Mar 2008 16:26:51 +0000 (16:26 +0000)]
Extend the builder interface to use the new instruction positioning code.
This adds support for instruction iterators, as well as rewriting the
builder code to use these new functions. This lets us eliminate the C
bindings for moving around the builder.
Patch by Erick Tryzelaar!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48774
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 25 Mar 2008 09:12:48 +0000 (09:12 +0000)]
Fix PR2062: Don't build Intrinsics.gen in the source directory. Do it in the
object directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48766
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 25 Mar 2008 05:05:58 +0000 (05:05 +0000)]
Disable building llvm-upgrade.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48764
91177308-0d34-0410-b5e6-
96231b3b80d8
Sam Bishop [Tue, 25 Mar 2008 04:41:18 +0000 (04:41 +0000)]
Make a note of the fact that EmitOwnedPtr() has nothing to do with the
OwningPtr<> class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48763
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Tue, 25 Mar 2008 04:26:08 +0000 (04:26 +0000)]
Byebye llvm-upgrade!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48762
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 25 Mar 2008 02:02:19 +0000 (02:02 +0000)]
lastRegisterUse() should ignore identity copies. Those will be erased.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48759
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 25 Mar 2008 00:47:49 +0000 (00:47 +0000)]
check struct layout
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48758
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 24 Mar 2008 23:55:16 +0000 (23:55 +0000)]
Remove an unneeded test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48755
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 24 Mar 2008 23:36:49 +0000 (23:36 +0000)]
Add \t after .set. Fix by Jay Freeman.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48753
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 24 Mar 2008 23:31:21 +0000 (23:31 +0000)]
If the coalescer commuted a def MI to allow coalescing, it can changed a previously coalesced copy into an non-identity copy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48752
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 24 Mar 2008 23:28:21 +0000 (23:28 +0000)]
Add an assertion to catch register of illegal class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48751
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 24 Mar 2008 23:16:37 +0000 (23:16 +0000)]
Use the bit size of the operand instead of the hard-coded 32 to generate the
mask.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48750
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Mon, 24 Mar 2008 22:16:14 +0000 (22:16 +0000)]
With debug info, there are nameless constant global values. do not crash when we hit one
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48749
91177308-0d34-0410-b5e6-
96231b3b80d8
Steve Naroff [Mon, 24 Mar 2008 22:01:58 +0000 (22:01 +0000)]
Add file to project.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48747
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 24 Mar 2008 21:52:23 +0000 (21:52 +0000)]
- SSE4.1 extractfps extracts a f32 into a gr32 register. Very useful! Not. Fix the instruction specification and teaches lowering code to use it only when the only use is a store instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48746
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 24 Mar 2008 21:38:01 +0000 (21:38 +0000)]
Oops. I wanted the compile flags for C++, not the C preprocessor flags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48744
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 24 Mar 2008 21:29:58 +0000 (21:29 +0000)]
Revert r48676. I had plans for using it, but now it's just dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48743
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Mar 2008 20:52:42 +0000 (20:52 +0000)]
void type is also a valid function return type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48740
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 24 Mar 2008 20:36:47 +0000 (20:36 +0000)]
Remove #include<iostream>, which I was using for debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48739
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Mar 2008 20:16:14 +0000 (20:16 +0000)]
Add incoming value from header only if phi node has any use inside the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48738
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Mon, 24 Mar 2008 18:29:32 +0000 (18:29 +0000)]
Added Passes.html to the documentation list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48736
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Mar 2008 18:10:52 +0000 (18:10 +0000)]
Fix typo. Clarify underlying message.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48734
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Mar 2008 18:08:07 +0000 (18:08 +0000)]
Fix test name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48733
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Mar 2008 17:41:57 +0000 (17:41 +0000)]
apparently tclsh doesn't lex like bash. Weird.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48732
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 24 Mar 2008 17:36:38 +0000 (17:36 +0000)]
pass the option so this test tests the right thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48731
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Mar 2008 17:16:39 +0000 (17:16 +0000)]
Add new test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48730
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Mar 2008 16:58:44 +0000 (16:58 +0000)]
Remove an unnecessary #include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48729
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Mar 2008 16:58:20 +0000 (16:58 +0000)]
Remove incorrect comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48728
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Mar 2008 16:55:58 +0000 (16:55 +0000)]
Shrink the size of AllocationInst by using its SubclassData
field to store the alignment value instead of haing a
separate field.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48727
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 24 Mar 2008 16:38:05 +0000 (16:38 +0000)]
APIntify SelectionDAG's EXTRACT_ELEMENT code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48726
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 24 Mar 2008 06:37:48 +0000 (06:37 +0000)]
Increasing the inline limit from (overly conservative) 200 to 300. Given each BB costs 20 and each instruction costs 5, 200 means a 4 BB function + 24 instructions (actually less because caller's size also contributes to it).
Furthermore, double the limit when more than 10% of the callee instructions are vector instructions. Multimedia kernels tend to love inlining.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48725
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 24 Mar 2008 05:58:47 +0000 (05:58 +0000)]
Small format/grammar changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48723
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Mon, 24 Mar 2008 05:55:54 +0000 (05:55 +0000)]
Grammar Nazi strikes! :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48722
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 24 Mar 2008 05:35:41 +0000 (05:35 +0000)]
Update Function type documentation to clarify how multiple return values are supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48721
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 24 Mar 2008 05:28:38 +0000 (05:28 +0000)]
Temporarily disabling memset forming optimization. Add an option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48720
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 24 Mar 2008 04:11:27 +0000 (04:11 +0000)]
Be sure to remove intervals after we've joined them. Also, remove some duplicated code.
With this pass, StrongPHIElim can compile very simple testcases correctly. There's still a ways
to go before it's ready for prime time, though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48719
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Mon, 24 Mar 2008 03:43:50 +0000 (03:43 +0000)]
Ignoring per-user file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48718
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Mon, 24 Mar 2008 03:42:32 +0000 (03:42 +0000)]
Ignoring generated files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48717
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 24 Mar 2008 00:21:34 +0000 (00:21 +0000)]
Transform (zext (or (icmp), (icmp))) to (or (zext (cimp), (zext icmp))) if at least one of the (zext icmp) can be transformed to eliminate an icmp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48715
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 23 Mar 2008 22:56:07 +0000 (22:56 +0000)]
Remove duplicated entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48714
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 23 Mar 2008 22:52:51 +0000 (22:52 +0000)]
Another typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48713
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 23 Mar 2008 22:37:22 +0000 (22:37 +0000)]
Fix a typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48712
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 23 Mar 2008 22:21:29 +0000 (22:21 +0000)]
Objective Caml bindings for basic block, function, global, and arg iterators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48711
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 20:32:06 +0000 (20:32 +0000)]
Minor typo fixes. Also add another FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48710
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Sun, 23 Mar 2008 16:49:47 +0000 (16:49 +0000)]
Update project to reflect deleted files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48709
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 16:03:00 +0000 (16:03 +0000)]
Preserve calling convention during function cloning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48708
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 14:53:18 +0000 (14:53 +0000)]
Add license header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48707
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 14:44:32 +0000 (14:44 +0000)]
Add Win64 compilation callback. This allows easy examples to be JITed on Win64!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48706
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 13:44:17 +0000 (13:44 +0000)]
Use C-style comments :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48705
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 13:43:47 +0000 (13:43 +0000)]
Provide a JIT selector on win64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48704
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 13:41:18 +0000 (13:41 +0000)]
Hack out the PIC mode on Win64 targets. This needs to be investigated later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48703
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 13:40:45 +0000 (13:40 +0000)]
Code cleanup. Provide generic way of selecting JIT pointer bitwidth regardless
of compiler used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48702
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 12:32:54 +0000 (12:32 +0000)]
Remove old-standing obsolete code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48701
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 08:58:32 +0000 (08:58 +0000)]
Add Mikhail to credits file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48700
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sun, 23 Mar 2008 08:57:20 +0000 (08:57 +0000)]
Add first proof-of-concept universal compiler driver framework based
on ideas mentioned in PR686.
Written by Mikhail Glushenkov and contributed by Codedgers, Inc.
Old llvmc will be removed soon after new one will have all its properties.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48699
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 22 Mar 2008 22:27:01 +0000 (22:27 +0000)]
New testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48697
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Sat, 22 Mar 2008 21:57:15 +0000 (21:57 +0000)]
Don't strip things when we're doing a debug build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48696
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 21:18:22 +0000 (21:18 +0000)]
Honour built-in defines on win64 targets for automatically subtarget recognize.
Force stack alignment to 16 bytes on win targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48695
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 21:12:53 +0000 (21:12 +0000)]
Recognize "windows" in target triple, not only "win32"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48694
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 22 Mar 2008 21:08:33 +0000 (21:08 +0000)]
Use normal naming convention for test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48693
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 21:04:01 +0000 (21:04 +0000)]
Add information about callee-saved registers on Win64
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48692
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 20:57:27 +0000 (20:57 +0000)]
Add convenient helper for win64 check. Simplify things slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48691
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 20:37:30 +0000 (20:37 +0000)]
Initial support for Win64 calling conventions. Still in early state.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48690
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 08:53:09 +0000 (08:53 +0000)]
Register EH frames emitted in JIT when using gcc unwinding runtime
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48688
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 08:50:08 +0000 (08:50 +0000)]
Fix merge error
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48687
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 08:37:05 +0000 (08:37 +0000)]
Add testcase for prev. commit. Minor fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48686
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 08:36:14 +0000 (08:36 +0000)]
Aliasing chains cleanups: update langref, add check into verifier
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48685
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 08:17:17 +0000 (08:17 +0000)]
Support chained aliases for LLVM IR printing. This fixes PR2145
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48684
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 07:53:40 +0000 (07:53 +0000)]
Another comments fixing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48683
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 07:48:40 +0000 (07:48 +0000)]
Slightly increase default set size. It's cheap and won't hurt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48682
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Sat, 22 Mar 2008 07:48:08 +0000 (07:48 +0000)]
Typo fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48681
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 22 Mar 2008 05:37:16 +0000 (05:37 +0000)]
implement an initial hack at a straight-line store -> memset optimization.
This fires dozens of times across spec and multisource, but I don't know
if it actually speeds stuff up. Hopefully the testers will show something
nice :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48680
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 22 Mar 2008 04:13:49 +0000 (04:13 +0000)]
implement the logic for memset insertion and store deletion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48679
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 22 Mar 2008 02:59:54 +0000 (02:59 +0000)]
Add a comment, and fix a bug where AllocateRW recurred to AllocateRWX instead of itself.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48677
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 22 Mar 2008 02:33:53 +0000 (02:33 +0000)]
Add an AllocateRW to match AllocateRWX.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48676
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 22 Mar 2008 01:55:50 +0000 (01:55 +0000)]
Teach DAG combiner to commute commutable binary nodes in order to achieve sdisel CSE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48673
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 22 Mar 2008 00:31:52 +0000 (00:31 +0000)]
This is a partially implemented and currently disabled start of a store
merging optimization. Nothing to see here, hopefully more later :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48670
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 21 Mar 2008 23:51:57 +0000 (23:51 +0000)]
Don't include <map> in Pass.h, which doesn't need it. This requires
adding <map> to many files that actually do need it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48667
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 21 Mar 2008 23:44:21 +0000 (23:44 +0000)]
Avoid calling array_endof in a static initializer, as it incurs
dynamic initialization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48666
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 21 Mar 2008 23:38:23 +0000 (23:38 +0000)]
Specialize FORCE_DEFINING_FILE_TO_BE_LINKED using a GCC trick
to avoid using constructor calls for static objects. This reduces
the number of objects requiring static constructors in a typical
LLVM build by around 20%.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48665
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 21 Mar 2008 22:51:06 +0000 (22:51 +0000)]
Fix -view-sunit-dags to support cross-rc-copy nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48664
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Fri, 21 Mar 2008 22:17:07 +0000 (22:17 +0000)]
a happier version of happiness
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48663
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 22:01:16 +0000 (22:01 +0000)]
the size of a smallvector shouldn't be part of the interface to these methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48662
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 21:33:23 +0000 (21:33 +0000)]
make gvn marginally faster by reallocating the lastSeenLoad map for
each basic block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48660
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 21:14:38 +0000 (21:14 +0000)]
Minor cleanups and shrinkification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48658
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 21 Mar 2008 21:01:32 +0000 (21:01 +0000)]
Handle getresult instructions in different basic blocks
from their aggregate operands by moving the getresult
instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48657
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 20:41:27 +0000 (20:41 +0000)]
Restore this assert now that the livevar bug is fixed.
This verifies kill info for "ret" fp operands is right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48656
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 21 Mar 2008 20:22:11 +0000 (20:22 +0000)]
Testcase for PR2160.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48655
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 21 Mar 2008 19:09:30 +0000 (19:09 +0000)]
A couple of kill marker maintainence bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48653
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 17:24:17 +0000 (17:24 +0000)]
clean up and fix the call section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48651
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 17:20:51 +0000 (17:20 +0000)]
cleanups for the getresult section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48650
91177308-0d34-0410-b5e6-
96231b3b80d8
Andrew Lenharth [Fri, 21 Mar 2008 16:46:53 +0000 (16:46 +0000)]
FunctionExtractorPass has been superceded by GVExtractorPass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48648
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 21 Mar 2008 15:53:17 +0000 (15:53 +0000)]
Make it possible to get an empty struct using
the new StructType::get method. The second NULL
is to pacify the gcc warning mechanism. This
patch compiles but is otherwise untested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48645
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 21 Mar 2008 09:14:45 +0000 (09:14 +0000)]
Introduce a new node for holding call argument
flags. This is needed by the new legalize types
infrastructure which wants to expand the 64 bit
constants previously used to hold the flags on
32 bit machines. There are two functional changes:
(1) in LowerArguments, if a parameter has the zext
attribute set then that is marked in the flags;
before it was being ignored; (2) PPC had some bogus
code for handling two word arguments when using the
ELF 32 ABI, which was hard to convert because of
the bogusness. As suggested by the original author
(Nicolas Geoffray), I've disabled it for the moment.
Tested with "make check" and the Ada ACATS testsuite.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48640
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 21 Mar 2008 08:32:17 +0000 (08:32 +0000)]
Fix the build for gcc-4.2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48639
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 06:50:21 +0000 (06:50 +0000)]
remove Evan's "ugly hack" that sorta attempted to get
x86-64 return conventions correct, but was never enabled.
We can now do the "right thing" with multiple return values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48635
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 06:38:26 +0000 (06:38 +0000)]
Add support for calls that return two FP values in
ST(0)/ST(1).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48634
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 06:01:05 +0000 (06:01 +0000)]
disable a bogus assertion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48633
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 05:57:20 +0000 (05:57 +0000)]
Enable support for returning two long-double values in ST(0)/ST(1).
This allows us to compile fp-stack-2results.ll into:
_test:
fldz
fld1
ret
which returns 1 in ST(0) and 0 in ST(1). This is needed for x86-64
_Complex long double.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48632
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 21 Mar 2008 05:19:58 +0000 (05:19 +0000)]
Teach masked value is zero about add and sub, and use MVIZ to
simplify things like (X & 4) >> 1 == 2 --> (X & 4) == 4.
since it is obvious that the shift doesn't remove any bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48631
91177308-0d34-0410-b5e6-
96231b3b80d8