Duncan Sands
ececf99c07
Linux also does not require exception handling
...
moves in order to get correct debug info. Since
I can't imagine how any target could possibly
be any different, I've just stripped out the
option: now all the world's like Darwin!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53134 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-04 09:55:48 +00:00
Bill Wendling
c04f46567c
Don't return std::vector by value, but pass it in by reference to be filled.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53123 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 23:13:02 +00:00
Bill Wendling
10fff6078a
Revert my previous check-in that split up MachineModuleInfo. It turns out to
...
slow the compiler down at -O0 some 30% or more. Ooops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53120 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 22:53:42 +00:00
Devang Patel
a93ae711a9
Provide a hook to set the code generation debug options to investigate lto failures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53119 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 22:53:14 +00:00
Evan Cheng
a122f2f51e
Backed out 53031.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53110 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 18:20:14 +00:00
Evan Cheng
cb2627395d
Back out 53091 for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53109 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 18:11:29 +00:00
Owen Anderson
0ae33ef202
Use information already present in the ValueTable to fast-fail when we know there won't be a value number match. This speeds up GVN on a case where there are very few redundancies by ~25%.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53108 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 17:44:33 +00:00
Devang Patel
77a01136ff
Do not try to update dominator info while manipulating CFG. This code does not handle all cases and keeps invalid dom info around some cases, which misleads other passes down stream.
...
Right now, dom info is recaluclated in the end if the loop is switched.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53106 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 17:37:52 +00:00
Owen Anderson
9da02b844f
Remove the ability for ADCE to remove unreachable blocks in loop nests, because, as Eli pointed out, SimplifyCFG already does this.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53104 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 17:21:41 +00:00
Evan Cheng
9f1c8317a4
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc.
...
- Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 09:09:37 +00:00
Evan Cheng
f9d0318950
isel load folding is disabled at -fast. Now hoist the check up to the top level to save some time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53096 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 08:39:51 +00:00
Matthijs Kooijman
10b9de62ff
Add newline at the end of Constants.cpp.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53092 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 07:46:41 +00:00
Anton Korobeynikov
f550f472ee
llvm-gcc sometimes marks external declarations hidden, because intializers are
...
processed separately. Honour such situation and emit PIC relocations properly
in such case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53091 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 07:43:14 +00:00
Bill Wendling
38976dc394
Remove unused function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53090 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 07:10:03 +00:00
Devang Patel
98260a474c
Preserve dom info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53089 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 07:04:22 +00:00
Devang Patel
70c09c54b1
Keep track of inherited analysis (e.g. dominator tree).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53088 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 07:02:30 +00:00
Devang Patel
f31b3bbd10
Remove extra FIXME
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53087 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 06:50:04 +00:00
Devang Patel
4be7d294f8
Reconstruct dom info, if loop is unswitched.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53086 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 06:48:21 +00:00
Devang Patel
b76247b8b1
LoopUnswitch does not preserve dominator info in all cases.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53085 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 05:55:03 +00:00
Dan Gohman
2ebc11ac6d
Reapply r52988, "Simplify addRegisterKilled and addRegisterDead." The
...
254.gap failure was not due to this mod.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53068 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 01:18:51 +00:00
Dan Gohman
08c09496c2
Use operator new instead of new char[].
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53067 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:59:36 +00:00
Dan Gohman
8de552d6f3
Use operator new instead of new char[].
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53066 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:53:09 +00:00
Dan Gohman
9b44c1f2a0
Avoid unnecessarily copying APInt objects.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53065 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:52:03 +00:00
Dan Gohman
ce3c413e07
Correct a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53064 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:51:05 +00:00
Evan Cheng
5b9f60bc22
Use std::replace instead of std::find and push_back.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53063 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:28:27 +00:00
Devang Patel
825cb98d9a
Undo previous patch. It is not that simple to fix dom info here.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53062 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:08:13 +00:00
Evan Cheng
be04dc1413
- Add LiveVariables::replaceKillInstruction. This does a subset of instructionChanged. That is, it only update the VarInfo.kills if the new instruction is known to have the correct dead and kill markers.
...
- CommuteInstruction copies kill / dead markers over to new instruction. So use replaceKillInstruction instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53061 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:07:19 +00:00
Evan Cheng
457b88fb95
commuteInstruction should preserve dead markers.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53060 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-03 00:04:51 +00:00
Owen Anderson
f660c171c8
Make LiveVariables even more optional, by making it optional in the call to TargetInstrInfo::convertToThreeAddressInstruction
...
Also, if LV isn't around, then TwoAddr doesn't need to be updating flags, since they won't have been set in the first place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53058 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 23:41:07 +00:00
Dan Gohman
cd920d9ecf
Replace a few uses of SelectionDAG::getTargetNode with
...
SelectionDAG::SelectNodeTo in the instruction selector. This
updates existing nodes in place instead of creating new ones.
Go back to selecting ISD::DBG_LABEL nodes into
TargetInstrInfo::DBG_LABEL nodes instead of leaving them
unselected, now that SelectNodeTo allows us to update them
in place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53057 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 23:23:19 +00:00
Devang Patel
501e763dfe
Preserve dom info while simplifing loop after the unswitch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53052 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 22:58:54 +00:00
Eric Christopher
9bd64ea1d9
Add a couple more helper functions to deal with
...
creating global constant strings and pointers
to global constant strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53051 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 22:57:59 +00:00
Dan Gohman
8b69135f05
Revert r52988. It broke 254.gap on x86-64.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53050 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 22:12:55 +00:00
Owen Anderson
802af11460
TwoAddressInstructionPass doesn't really require LiveVariables, it just needs to update it if it's already around.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53049 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 21:28:58 +00:00
Chuck Rose III
d3f506a53a
VStudio x64 build fixes. Looks like the x64 projects got out of date and this brings them up to code. I've built the project with these new vcproj files for win32 and x64 both debug and release.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53047 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 21:02:51 +00:00
Owen Anderson
735e6eabf1
Use ADCE instead of just DCE. ADCE will better clean up after jump threading,
...
for instance.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53045 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 18:42:07 +00:00
Owen Anderson
ea6462bfd0
Use df_ext_iterator to capture the reachable set without allocating an extra set.
...
Also, move large sets and vectors out of instance variables and onto the stack,
and give them more reasonable sizes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53044 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 18:41:09 +00:00
Owen Anderson
cb29a4f66a
Avoid a redundant call.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53040 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 18:15:31 +00:00
Owen Anderson
77d76b7ef7
Add support to ADCE for pruning unreachable blocks. This addresses the final
...
part of PR2509.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53038 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 18:05:19 +00:00
Mon P Wang
6ed2d1ecdb
Make the default min align of CreateStackTemporary to be 1
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53036 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 17:50:10 +00:00
Duncan Sands
4bdcb61af3
Add a new getMergeValues method that does not need
...
to be passed the list of value types, and use this
where appropriate. Inappropriate places are where
the value type list is already known and may be
long, in which case the existing method is more
efficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53035 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 17:40:58 +00:00
Owen Anderson
2c04b0da2b
Use DenseSet rather than SmallPtrSet for the alive set. Using SmallPtrSet
...
with a huge "size" parameter is actually quite inefficient.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53034 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 17:32:04 +00:00
Owen Anderson
93ee2fd7da
Have DenseSet::insert return a bool indicating whether the insertion succeeded or not.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53033 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 17:29:59 +00:00
Owen Anderson
f2aa160b35
A better fix for PR2503 that doesn't pessimize GVN in the presence of unreachable blocks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53032 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 17:20:16 +00:00
Mon P Wang
bee98c66c0
Fixed problem in EmitStackConvert where the source and target type
...
have different alignment by creating a stack slot with the max
alignment of source and target type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 17:07:12 +00:00
Chris Lattner
349db1738d
instead of aborting on shifts of i1, just implicitly fold them.
...
The dag combiner can produce a shift of i1 when folding icmp i1's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53030 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 17:01:57 +00:00
Matthijs Kooijman
9d3edca443
Update link to testing guide to use the new title.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53018 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 13:54:58 +00:00
Duncan Sands
8dd5af562b
Fix typo compounded by a cut-and-pasto.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53012 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 10:03:53 +00:00
Duncan Sands
3a38e5e3c4
Let AnalyzeNewNode take care of calling ExpungeNode.
...
This makes sure that all new nodes are expunged, not
just those the top node of a new subtree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53011 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 09:56:41 +00:00
Evan Cheng
c6be777208
- Use a faster priority comparison function if -fast.
...
- Code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53010 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-02 09:23:51 +00:00