Daniel Dunbar
e0f0e0be1c
Change LTO to run the global opt pass twice.
...
- This matches llvm-ld.
It took a bit of archeology to figure out what the right thing to do was
(whether this was intentionally added or intentionally removed). My final
conclusion is that Chris added this intentionally here:
http://llvm.org/viewvc/llvm-project?view=rev&revision=16913
but the changes weren't propogated to llvm-ld until here:
http://llvm.org/viewvc/llvm-project?view=rev&revision=34058
which was after lto.cpp had been cloned off (of llvm-ld), here:
http://llvm.org/viewvc/llvm-project?view=rev&revision=29494
From the commit message, it looks like the motivation for running global opt
again is because we ran it prior to inlining. Based on that I updated the
comment and also only run the pass if we actually ran the inliner.
Chris, please review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72811 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 21:51:32 +00:00
Eli Friedman
a8ba2c25e9
PR4317: Handle splits where the new block is unreachable correctly in
...
DominatorTreeBase::Split.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72810 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 21:42:06 +00:00
Stuart Hastings
77648cfd75
Recognize another euphemism for MOVDQ2Q.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72808 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 21:39:14 +00:00
Evan Cheng
424f8f339a
For Darwin / x86_64, override -relocation-model=static to pic if the output is assembly since Darwin assembler does not really support -static codeine.
...
I view this as a temporary workaround until the assembler / linker changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72806 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 21:13:54 +00:00
Daniel Dunbar
006a034828
Add createStandardLTOPasses to StandardPasses.h, and move lto and llvm-ld over.
...
- I know it sounds crazy, but I think all the pass lists are now coalesced into
StandardPasses.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72805 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 21:06:14 +00:00
Dan Gohman
9911405183
Convert Alpha and Mips to use a MachineFunctionInfo subclass to
...
carry GlobalBaseReg, and GlobalRetAddr too in Alpha's case. This
eliminates the need for them to search through the
MachineRegisterInfo livein list in order to identify these
virtual registers. EmitLiveInCopies is now the only user of the
virtual register portion of MachineRegisterInfo's livein data.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72802 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 20:30:14 +00:00
Dan Gohman
c553462c29
Remove the redundant TM member from X86DAGToDAGISel; replace it
...
with an accessor method which simply casts the parent class
SelectionDAGISel's TM to the target-specific type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72801 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 20:20:00 +00:00
Dan Gohman
68c9344056
Don't attempt to simplify an non-affine IV expression if it can't
...
be simplified to a loop-invariant value. This fixes PR4315.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72798 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 19:11:31 +00:00
Mike Stump
222858256f
Make the buildbot see green (to make it easier to spot the next person
...
that puts a new warning in).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72797 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 19:07:46 +00:00
Daniel Dunbar
ca8131ebac
Switch opt to using StandardPasses.h
...
- No functionality change, but please check if you don't believe me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 18:22:15 +00:00
Daniel Dunbar
e98c4d0b10
Remove some silly code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72788 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 18:13:05 +00:00
Daniel Dunbar
04d5f44882
Add StandardPasses.h which embeds the standard compilation passes shared by
...
clang/llvm-gcc.
- Implemented as inline functions for linking simplicity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 17:52:39 +00:00
Bruno Cardoso Lopes
4cb31436bd
Move ELFCodeEmiter stuff to new files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72785 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 17:47:27 +00:00
Bruno Cardoso Lopes
bae049cd9e
Revert 72650
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72783 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 16:55:02 +00:00
Dan Gohman
974d90bb70
Remove unnecessary #includes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72782 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 16:47:12 +00:00
Sanjiv Gupta
3fc7e532aa
Emit file directives correctly in case of a .bc is generated by llvm-ld after linking in several .bc files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72781 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 16:27:49 +00:00
Torok Edwin
4734ed8b87
lets not forget about c++!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72778 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 15:42:26 +00:00
Sanjiv Gupta
892c8caa3c
FrameIndex could be used as a value (addressof (arg)) or as an address.
...
Expand it exactly like GlobalAddress.
Fix some more crashes (InsertBranch() not being implemented) for compiling hitec libs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72776 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 15:31:12 +00:00
Oscar Fuentes
030019f113
CMake: Added missing source file to lib/CodeGen/CMakeLists.txt.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72775 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 15:29:09 +00:00
Oscar Fuentes
81a875585c
CMake: Implements and documents option LLVM_ENABLE_ASSERTS.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72774 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 15:11:25 +00:00
Torok Edwin
5641f8d67f
Document how easy it is to use the gold plugin and have LTO with autotooled projects.
...
Please correct the documentation if I missed anything.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72773 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 15:06:19 +00:00
Sanjiv Gupta
703e235f0c
Fixed a bug in which signed comparisons were being used instead of unsigned comparisons.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72771 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 13:36:44 +00:00
Duncan Sands
12513889fd
Avoid a warning "'U' might be used uninitialized in
...
this function" when using a not-too-smart compiler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72768 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 12:05:18 +00:00
Duncan Sands
05a8c87bb2
At a newline at the end of this file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72767 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 11:54:28 +00:00
Jay Foad
d244909b76
Document how phi and invoke instructions interact with SSA form.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72762 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 10:20:10 +00:00
Evan Cheng
2c48fe6757
Fix for PR4225: When rewriter reuse a value in a physical register , it clear the register kill operand marker and its kill ops information. However, the cleared operand may be a def of a super-register. Clear the kill ops info for the super-register's sub-registers as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 09:00:27 +00:00
Evan Cheng
70fd60bd57
Temporarily revert 72756 for now.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72757 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 07:40:47 +00:00
Evan Cheng
9d5fb981b0
Fold preceding / trailing base inc / dec into the single load / store as well.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 06:14:58 +00:00
Evan Cheng
95299c194d
If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g.
...
EAX = ..., AX<imp-def>
...
= AX
This creates a double-def. Apparently this used to be necessary but is no longer needed.
Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72755 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 05:15:46 +00:00
Bruno Cardoso Lopes
a321dcd38d
Move structures and classes into header files, providing two new headers and
...
one new .cpp file, in preparation for merging in the Direct Object Emission
changes we're working on. No functional changes.
Fixed coding style issues on the original patch. Patch by Aaron Gray
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72754 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 03:43:31 +00:00
Dan Gohman
6ecc2602a6
Revert r72734. The Darwin assembler doesn't support the static
...
relocation model on x86-64. Higher level logic should override
the relocation model to PIC on x86_64-apple-darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72746 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 00:37:20 +00:00
Dan Gohman
b3ae97cffe
Change TargetFolder's TD member from a reference to a
...
pointer, now that ConstantFoldConstantExpression can
accept a null TargetData pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72744 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03 00:13:48 +00:00
Dan Gohman
7714285efd
Change ConstantFoldConstantExpression to accept a null
...
TargetData pointer. The only thing it's used for are
calls to ConstantFoldCompareInstOperands and
ConstantFoldInstOperands, which both already accept a
null TargetData pointer. This makes
ConstantFoldConstantExpression easier to use in clients
where TargetData is optional.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72741 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 21:48:15 +00:00
Dan Gohman
014d53595c
Delete an unnecessary forward declaration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72740 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 21:37:43 +00:00
Dan Gohman
8b0d4f61bb
Fix CodeGenPrepare's address-mode sinking to handle unusual
...
addresses, involving Base values which do not have Pointer type.
This fixes PR4297.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72739 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 21:29:13 +00:00
Daniel Dunbar
f5a595024f
NightlyTest: Stop running a separate Olden pass during nightly test.
...
- Unless I'm mistaken, these results weren't even being reported and just
served to clobber the previous build products and waste cycles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72738 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 21:14:15 +00:00
Torok Edwin
23e1e727bd
fix build on VC++2k8.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 20:32:59 +00:00
Lang Hames
7ccf4a05e8
Fixed warning, removed some temporary validation code that snuck in during my last commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72735 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 20:30:03 +00:00
Evan Cheng
da9863fa41
On Darwin x86_64 small code model doesn't guarantee code address fits in 32-bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72734 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 20:09:31 +00:00
Owen Anderson
d8cf40372e
Undef MemoryFence when compiling on MSVC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72732 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 17:35:55 +00:00
Devang Patel
8900bcc1ff
Simplify assertion message to avoid confusion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72731 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 17:26:29 +00:00
Lang Hames
f41538d1b5
Update to in-place spilling framework. Includes live interval scaling and trivial rewriter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72729 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 16:53:25 +00:00
Dale Johannesen
874ae251c3
Revert 72707 and 72709, for the moment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72712 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 03:12:52 +00:00
Evan Cheng
5d16396a33
Avoid infinite looping in AllGlobalLoadUsesSimpleEnoughForHeapSRA(). This can happen when PHI uses are recursively dependent on each other.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72710 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-02 00:56:07 +00:00
Dale Johannesen
ca46fdd284
Add missing file.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72709 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-01 23:48:58 +00:00
Nick Kledzik
4bdf73025a
update comments about .objc_ symbols being generated
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72708 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-01 23:41:09 +00:00
Dale Johannesen
4150d83abe
Make the implicit inputs and outputs of target-independent
...
ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to)
instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust
all target-independent code to use this format.
Most targets will still produce a Flag-setting target-dependent
version when selection is done. X86 is converted to use i32
instead, which means TableGen needs to produce different code
in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit
in xxxInstrInfo, currently set only for X86; in principle this
is temporary and should go away when all other targets have
been converted. All relevant X86 instruction patterns are
modified to represent setting and using EFLAGS explicitly. The
same can be done on other targets.
The immediate behavior change is that an ADC/ADD pair are no
longer tightly coupled in the X86 scheduler; they can be
separated by instructions that don't clobber the flags (MOV).
I will soon add some peephole optimizations based on using
other instructions that set the flags to feed into ADC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72707 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-01 23:27:20 +00:00
Dale Johannesen
8313899851
Comment grammaro/clarification.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72706 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-01 23:13:42 +00:00
Dale Johannesen
69bbb4cd39
Trailing whitespace.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72705 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-01 23:12:52 +00:00
Mike Stump
6330084a66
Dcoument that the opauque value used to construct QNaNs is truncated
...
as necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72702 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-01 21:02:35 +00:00