Evan Cheng
b71402d6ae
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.
llvm-svn: 72806
2009-06-03 21:13:54 +00:00
Daniel Dunbar
6a35862267
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.
llvm-svn: 72805
2009-06-03 21:06:14 +00:00
Dan Gohman
fcdb0d4193
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.
llvm-svn: 72802
2009-06-03 20:30:14 +00:00
Dan Gohman
691dd710e9
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.
llvm-svn: 72801
2009-06-03 20:20:00 +00:00
Dan Gohman
6e9ad19ef7
Don't attempt to simplify an non-affine IV expression if it can't
...
be simplified to a loop-invariant value. This fixes PR4315.
llvm-svn: 72798
2009-06-03 19:11:31 +00:00
Mike Stump
a864e12f97
Make the buildbot see green (to make it easier to spot the next person
...
that puts a new warning in).
llvm-svn: 72797
2009-06-03 19:07:46 +00:00
Daniel Dunbar
fe1e04f85a
Switch opt to using StandardPasses.h
...
- No functionality change, but please check if you don't believe me.
llvm-svn: 72789
2009-06-03 18:22:15 +00:00
Daniel Dunbar
cc8a220a38
Remove some silly code.
...
llvm-svn: 72788
2009-06-03 18:13:05 +00:00
Daniel Dunbar
2436bbf945
Add StandardPasses.h which embeds the standard compilation passes shared by
...
clang/llvm-gcc.
- Implemented as inline functions for linking simplicity.
llvm-svn: 72786
2009-06-03 17:52:39 +00:00
Bruno Cardoso Lopes
8fa826d852
Move ELFCodeEmiter stuff to new files
...
llvm-svn: 72785
2009-06-03 17:47:27 +00:00
Bruno Cardoso Lopes
43896d0ee4
Revert 72650
...
llvm-svn: 72783
2009-06-03 16:55:02 +00:00
Dan Gohman
273546fbdc
Remove unnecessary #includes.
...
llvm-svn: 72782
2009-06-03 16:47:12 +00:00
Sanjiv Gupta
ea551a1e7c
Emit file directives correctly in case of a .bc is generated by llvm-ld after linking in several .bc files.
...
llvm-svn: 72781
2009-06-03 16:27:49 +00:00
Torok Edwin
29762633ee
lets not forget about c++!
...
llvm-svn: 72778
2009-06-03 15:42:26 +00:00
Sanjiv Gupta
aa07dba151
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.
llvm-svn: 72776
2009-06-03 15:31:12 +00:00
Oscar Fuentes
3a964cbc3b
CMake: Added missing source file to lib/CodeGen/CMakeLists.txt.
...
llvm-svn: 72775
2009-06-03 15:29:09 +00:00
Oscar Fuentes
86f4f18dca
CMake: Implements and documents option LLVM_ENABLE_ASSERTS.
...
llvm-svn: 72774
2009-06-03 15:11:25 +00:00
Torok Edwin
e056d0b8cd
Document how easy it is to use the gold plugin and have LTO with autotooled projects.
...
Please correct the documentation if I missed anything.
llvm-svn: 72773
2009-06-03 15:06:19 +00:00
Sanjiv Gupta
0679a0baee
Fixed a bug in which signed comparisons were being used instead of unsigned comparisons.
...
llvm-svn: 72771
2009-06-03 13:36:44 +00:00
Duncan Sands
ab3e57c63f
Avoid a warning "'U' might be used uninitialized in
...
this function" when using a not-too-smart compiler.
llvm-svn: 72768
2009-06-03 12:05:18 +00:00
Duncan Sands
1f0ecf9952
At a newline at the end of this file.
...
llvm-svn: 72767
2009-06-03 11:54:28 +00:00
Jay Foad
203127a106
Document how phi and invoke instructions interact with SSA form.
...
llvm-svn: 72762
2009-06-03 10:20:10 +00:00
Evan Cheng
4e47a019ba
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.
...
llvm-svn: 72758
2009-06-03 09:00:27 +00:00
Evan Cheng
82f8fa333e
Temporarily revert 72756 for now.
...
llvm-svn: 72757
2009-06-03 07:40:47 +00:00
Evan Cheng
5afbef29fa
Fold preceding / trailing base inc / dec into the single load / store as well.
...
llvm-svn: 72756
2009-06-03 06:14:58 +00:00
Evan Cheng
085beccfb5
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.
llvm-svn: 72755
2009-06-03 05:15:46 +00:00
Bruno Cardoso Lopes
9408fc6842
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
llvm-svn: 72754
2009-06-03 03:43:31 +00:00
Dan Gohman
609f627ed7
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.
llvm-svn: 72746
2009-06-03 00:37:20 +00:00
Dan Gohman
50b57a3cc7
Change TargetFolder's TD member from a reference to a
...
pointer, now that ConstantFoldConstantExpression can
accept a null TargetData pointer.
llvm-svn: 72744
2009-06-03 00:13:48 +00:00
Dan Gohman
d1f2f34c1a
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.
llvm-svn: 72741
2009-06-02 21:48:15 +00:00
Dan Gohman
304cdeff4b
Delete an unnecessary forward declaration.
...
llvm-svn: 72740
2009-06-02 21:37:43 +00:00
Dan Gohman
f6e6588203
Fix CodeGenPrepare's address-mode sinking to handle unusual
...
addresses, involving Base values which do not have Pointer type.
This fixes PR4297.
llvm-svn: 72739
2009-06-02 21:29:13 +00:00
Daniel Dunbar
e54120ccae
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.
llvm-svn: 72738
2009-06-02 21:14:15 +00:00
Torok Edwin
a2f0fd169e
fix build on VC++2k8.
...
llvm-svn: 72736
2009-06-02 20:32:59 +00:00
Lang Hames
96d4476109
Fixed warning, removed some temporary validation code that snuck in during my last commit.
...
llvm-svn: 72735
2009-06-02 20:30:03 +00:00
Evan Cheng
7e66d61bec
On Darwin x86_64 small code model doesn't guarantee code address fits in 32-bit.
...
llvm-svn: 72734
2009-06-02 20:09:31 +00:00
Owen Anderson
6a94d2450e
Undef MemoryFence when compiling on MSVC.
...
llvm-svn: 72732
2009-06-02 17:35:55 +00:00
Devang Patel
a485e31081
Simplify assertion message to avoid confusion.
...
llvm-svn: 72731
2009-06-02 17:26:29 +00:00
Lang Hames
1a81422fab
Update to in-place spilling framework. Includes live interval scaling and trivial rewriter.
...
llvm-svn: 72729
2009-06-02 16:53:25 +00:00
Dale Johannesen
8b6ee9e312
Revert 72707 and 72709, for the moment.
...
llvm-svn: 72712
2009-06-02 03:12:52 +00:00
Evan Cheng
7875093e82
Avoid infinite looping in AllGlobalLoadUsesSimpleEnoughForHeapSRA(). This can happen when PHI uses are recursively dependent on each other.
...
llvm-svn: 72710
2009-06-02 00:56:07 +00:00
Dale Johannesen
fe3b3add52
Add missing file.
...
llvm-svn: 72709
2009-06-01 23:48:58 +00:00
Nick Kledzik
c367a91ca8
update comments about .objc_ symbols being generated
...
llvm-svn: 72708
2009-06-01 23:41:09 +00:00
Dale Johannesen
c08669561e
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.
llvm-svn: 72707
2009-06-01 23:27:20 +00:00
Dale Johannesen
548149ef8d
Comment grammaro/clarification.
...
llvm-svn: 72706
2009-06-01 23:13:42 +00:00
Dale Johannesen
4ad4ae870b
Trailing whitespace.
...
llvm-svn: 72705
2009-06-01 23:12:52 +00:00
Mike Stump
f39ed4d4f9
Dcoument that the opauque value used to construct QNaNs is truncated
...
as necessary.
llvm-svn: 72702
2009-06-01 21:02:35 +00:00
Nick Kledzik
3486856fd9
<rdar://problem/6927148> libLTO needs to handle i386 magic objc class symbols
...
Parse __OBJC data structures and synthesize magic .objc_ symbols.
Also, alter mangler so that objc method names are readable.
llvm-svn: 72700
2009-06-01 20:33:09 +00:00
Bill Wendling
c77c8e5f6e
Accidental commit. This isn't ready for prime time just yet.
...
llvm-svn: 72699
2009-06-01 20:18:46 +00:00
Anton Korobeynikov
e7e9118514
Implement review feedback. Make thumb2 'normal' subtarget feature
...
llvm-svn: 72698
2009-06-01 20:00:48 +00:00