Tilmann Scheller [Fri, 3 Jul 2009 06:47:08 +0000 (06:47 +0000)]
Refactor ABI code in the PowerPC backend.
Make CalculateParameterAndLinkageAreaSize() Darwin-specific.
Remove SVR4 specific code from LowerCALL_Darwin() and LowerFORMAL_ARGUMENTS_Darwin().
Rename MachoABI to DarwinABI for consistency.
Rename ELF ABI to SVR4 ABI for consistency.
Factor out common call return lowering between the Darwin and SVR4 ABI.
Factor out common call lowering between the Darwin and SVR4 ABI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74766
91177308-0d34-0410-b5e6-
96231b3b80d8
Tilmann Scheller [Fri, 3 Jul 2009 06:45:56 +0000 (06:45 +0000)]
Implement the SVR4 ABI for PowerPC.
Implement LowerFORMAL_ARGUMENTS_SVR4().
Implement LowerCALL_SVR4().
Add support for split arguments.
Implement by value parameter passing for aggregates.
Add support for variable argument lists.
Create the spill area for argument registers of variable argument functions no longer at a fixed offset.
Make sure callee saved registers are spilled to the correct stack offsets.
Change allocation order of non-volatile floating-point registers.
Add VRSAVE to the list of callee-saved registers, add CallConvLowering for vararg calls.
Add support for variable argument calls with Vector arguments.
Add support for VR and VRSAVE save area, improve allocation order for non-volatile vector registers.
Stop creating illegal i8 values in LowerVASTART().
Add memory access width hints.
Make sure to reserve space on the stack for the frame pointer.
When using the SVR4 ABI, reserve r13 for the Small Data Area pointer.
Assure that the frame pointer is spilled to the correct location on the stack.
Some FP registers were not marked as volatile.
Make sure the i64 words from a long double are passed either both in registers or both on the stack.
Only put integer arguments in registers which are not marked with the inreg flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74765
91177308-0d34-0410-b5e6-
96231b3b80d8
Tilmann Scheller [Fri, 3 Jul 2009 06:44:53 +0000 (06:44 +0000)]
Add NumFixedArgs attribute to CallSDNode which indicates the number of fixed arguments in a vararg call.
With the SVR4 ABI on PowerPC, vector arguments for vararg calls are passed differently depending on whether they are a fixed or a variable argument. Variable vector arguments always go into memory, fixed vector arguments are put
into vector registers. If there are no free vector registers available, fixed vector arguments are put on the stack.
The NumFixedArgs attribute allows to decide for an argument in a vararg call whether it belongs to the fixed or variable portion of the parameter list.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74764
91177308-0d34-0410-b5e6-
96231b3b80d8
Tilmann Scheller [Fri, 3 Jul 2009 06:43:35 +0000 (06:43 +0000)]
Small cleanups in the PowerPC backend.
Small refactoring in LowerFORMAL_ARGUMENTS().
Correct minor formatting issues.
Remove size argument of CreateCopyOfByValArgument().
Remove dead argument from CalculateStackSlotSize().
Remove unused variable ReturnAddrIndex from various targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74763
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Fri, 3 Jul 2009 04:36:26 +0000 (04:36 +0000)]
Factor some code out and support for Jump Table relocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74760
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Fri, 3 Jul 2009 03:52:47 +0000 (03:52 +0000)]
Add --enable-llvmc-dynamic configure option.
Controls whether libCompilerDriver should be loaded dynamically. By default this
is needed only on Win32, to make dynamic plugins work.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74759
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Fri, 3 Jul 2009 03:52:07 +0000 (03:52 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74758
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Jul 2009 01:43:10 +0000 (01:43 +0000)]
Add thumb2 sign / zero extend with rotate instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74755
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Bolka [Fri, 3 Jul 2009 01:42:52 +0000 (01:42 +0000)]
Minor improvement to the LDA debug output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74754
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 3 Jul 2009 00:54:20 +0000 (00:54 +0000)]
Second batch of passes using LLVMContext.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74753
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Jul 2009 00:18:36 +0000 (00:18 +0000)]
Add Thumb2 load / store multiple instructions. Not used yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74749
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 3 Jul 2009 00:17:18 +0000 (00:17 +0000)]
Convert the first batch of passes to use LLVMContext.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74748
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 3 Jul 2009 00:10:29 +0000 (00:10 +0000)]
Replace std::iostreams with raw_ostream in TableGen.
- Sorry, I can't help myself.
- No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74742
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Jul 2009 00:08:19 +0000 (00:08 +0000)]
t2LDR_PRE etc are loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74741
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 3 Jul 2009 00:06:39 +0000 (00:06 +0000)]
Added indexed stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74740
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 23:58:19 +0000 (23:58 +0000)]
Fill in a few more missing accessors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74739
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 2 Jul 2009 23:16:11 +0000 (23:16 +0000)]
Sign extending pre/post indexed loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74736
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 23:08:13 +0000 (23:08 +0000)]
switch the .ll parser to use SourceMgr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74735
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 22:46:18 +0000 (22:46 +0000)]
switch the .ll parser into SMDiagnostic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74734
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Jul 2009 22:43:26 +0000 (22:43 +0000)]
Simplify debug info intrisinc lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74733
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 22:24:20 +0000 (22:24 +0000)]
add an explicit class for holding llvm::SourceMgr diagnostics and use
it to print them. This gives us column numbers in the diag line. Before:
t.s:4: error: unexpected token in argument list
mov %eax %edx
^
now:
t.s:4:11: error: unexpected token in argument list
mov %eax %edx
^
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74732
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Thu, 2 Jul 2009 22:18:33 +0000 (22:18 +0000)]
Checkpoint refactoring of ThumbInstrInfo and ThumbRegisterInfo into Thumb1InstrInfo, Thumb2InstrInfo, Thumb1RegisterInfo and Thumb2RegisterInfo. Move methods from ARMInstrInfo to ARMBaseInstrInfo to prepare for sharing with Thumb2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74731
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 21:53:43 +0000 (21:53 +0000)]
implement error recovery in the llvm-mc parser. Feel the power!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74728
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 20:23:41 +0000 (20:23 +0000)]
Make the current LLVMContext available to passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74724
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 2 Jul 2009 18:53:52 +0000 (18:53 +0000)]
CMake build fixes, from Xerxes Ranby
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74720
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 2 Jul 2009 18:29:24 +0000 (18:29 +0000)]
shrinking down #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74718
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 18:03:58 +0000 (18:03 +0000)]
Add an accessor to Function so that Passes can easily get access to the context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74714
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Thu, 2 Jul 2009 17:51:09 +0000 (17:51 +0000)]
Prefix bin dir to executables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74713
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Jul 2009 17:39:40 +0000 (17:39 +0000)]
Remove tabs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74712
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Thu, 2 Jul 2009 17:35:38 +0000 (17:35 +0000)]
Fixed handling of -c option.wq
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74711
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 17:28:30 +0000 (17:28 +0000)]
Use LLVMContext for generating MDStrings too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74710
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 17:20:28 +0000 (17:20 +0000)]
Use LLVMContext to generate metadata constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74708
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 17:19:47 +0000 (17:19 +0000)]
Add accessors for metadata constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74707
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Jul 2009 17:17:03 +0000 (17:17 +0000)]
Fix typo.
Thanks Duncan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74706
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 17:12:48 +0000 (17:12 +0000)]
Add accessor for MDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74705
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 17:04:01 +0000 (17:04 +0000)]
Use LLVMContext for generating UndefValue constants too!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74703
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 16:51:51 +0000 (16:51 +0000)]
Add accessor for getting UndefValue's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74702
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 16:48:38 +0000 (16:48 +0000)]
Describe the LLVMContext API change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74701
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 16:08:53 +0000 (16:08 +0000)]
simplify some logic by using isWeakForLinker(). Thanks to Anton for
pointing this out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74700
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 16:04:08 +0000 (16:04 +0000)]
do not try to analyze bitcasts from i64 to <2 x i32> in ComputedMaskedBits. While
we could do this, doing so requires adjusting the demanded mask and the code isn't
doing that yet. This fixes PR4495
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74699
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 15:39:39 +0000 (15:39 +0000)]
fix inverted logic pointed out by John McCall, noticed by inspection.
This was considering vector intrinsics to have cost 2, but non-vector
intrinsics to have cost 1, which is backward.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74698
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 2 Jul 2009 12:09:50 +0000 (12:09 +0000)]
Fix windows build, patch by Howard Su.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74697
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 2 Jul 2009 07:28:31 +0000 (07:28 +0000)]
Thumb2 pre/post indexed loads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74696
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 07:21:49 +0000 (07:21 +0000)]
Ack, missed one incompatibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74695
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 07:17:57 +0000 (07:17 +0000)]
Restore other bits of the C API that I tore up. All pre-existing APIs default to using the
default global context, while new *InContext() APIs have been added that take a LLVMContextRef parameter.
Apologies to anyone affected by this breakage.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74694
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 2 Jul 2009 06:44:30 +0000 (06:44 +0000)]
80 col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74693
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 2 Jul 2009 06:38:40 +0000 (06:38 +0000)]
Change the meaning of predicate hasThumb2 to mean thumb2 ISA is available, not that it's in thumb mode and thumb2 is available. Added isThumb2 predicate to replace the old predicate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74692
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 04:22:01 +0000 (04:22 +0000)]
@GOTPCREL is also rip-relative. Fix fast-isel to do the right thing.
This fixes an llvm-gcc bootstrap problem I introduced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74691
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 03:14:25 +0000 (03:14 +0000)]
Fix yet-another bug I introduced into fastisel, this time handling
constant pool references that weren't getting properly rip-relative.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74689
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Jul 2009 02:28:23 +0000 (02:28 +0000)]
llvm-mc/x86: Test case for x86 operand parsing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74688
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Jul 2009 02:26:39 +0000 (02:26 +0000)]
llvm-mc/x86: Fix various nit-picky bugs in displacement parsing.
- Test case to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74687
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Thu, 2 Jul 2009 02:13:13 +0000 (02:13 +0000)]
Remove getFunctionAlignment from TargetELFInfo and use new MachineFunction alignment method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74686
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Jul 2009 02:09:07 +0000 (02:09 +0000)]
llvm-mc/x86: Fix bug in disambiguation of displacement operand, introduced by me
(I think).
- We weren't properly parsing the leading parenthesized expression in something
like 'push (4)(%eax)'.
- Added ParseParenRelocatableExpression to support this. I suspect we should
just use lookahead, though.
- Test case to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74685
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Jul 2009 01:58:24 +0000 (01:58 +0000)]
llvm-mc/x86: Factor out ParseX86Register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74684
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 2 Jul 2009 01:30:04 +0000 (01:30 +0000)]
80 col violation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74683
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 2 Jul 2009 01:24:34 +0000 (01:24 +0000)]
clarify: stub emission depends on the version of the linker you use, it has nothing
to do with the target. Also, the stub elimination optimization *requires* making the
stub explicit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74682
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 2 Jul 2009 01:23:32 +0000 (01:23 +0000)]
Factor out ARM indexed load matching code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74681
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Jul 2009 01:15:24 +0000 (01:15 +0000)]
Add debug info utility routines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74680
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 2 Jul 2009 00:51:52 +0000 (00:51 +0000)]
llvm-mc/x86: Rename X86Operand::ScaleReg to IndexReg and make order consistent
with syntax.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74679
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 00:31:14 +0000 (00:31 +0000)]
Maintain the old LTO API, by using the global context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74678
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Jul 2009 00:28:03 +0000 (00:28 +0000)]
Simplify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74677
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 2 Jul 2009 00:17:47 +0000 (00:17 +0000)]
Fix a bunch of other places that used operator[] to test whether
a key is present in a std::map or DenseMap to use find instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74676
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 2 Jul 2009 00:16:38 +0000 (00:16 +0000)]
Add a C wrapper for accessing the global default context.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74675
91177308-0d34-0410-b5e6-
96231b3b80d8
John Mosby [Thu, 2 Jul 2009 00:10:23 +0000 (00:10 +0000)]
fix ld error with -no-undefined switch, which is undefined on darwin8
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74674
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 2 Jul 2009 00:08:09 +0000 (00:08 +0000)]
Simplify. No intentional functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74673
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 23:57:11 +0000 (23:57 +0000)]
Try again at converting the LLParser to use LLVMContext, without massive breakage this time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74671
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 23:56:45 +0000 (23:56 +0000)]
Add a few methods that got left out earlier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74670
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 1 Jul 2009 23:38:44 +0000 (23:38 +0000)]
Try to clarify a point about getting DominatorTree info from a module pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74668
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Wed, 1 Jul 2009 23:36:02 +0000 (23:36 +0000)]
Add darwin stub removal to wishlist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74667
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 23:28:55 +0000 (23:28 +0000)]
Fix the LTO header for LLVMContext changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74663
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 1 Jul 2009 23:21:38 +0000 (23:21 +0000)]
Request LCSSA after LoopSimplify. This fixes a problem in which the
PassManager was scheduling LCSSA before LoopSimplify, which does not
preserve LCSSA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74661
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 23:19:01 +0000 (23:19 +0000)]
Refactor. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74659
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 1 Jul 2009 23:16:05 +0000 (23:16 +0000)]
Add a new addressing mode for NEON load/store instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74658
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 23:13:44 +0000 (23:13 +0000)]
Make the use of const with respect to LLVMContext sane. Hopefully this is the last time, for the
moment, that I will need to make far-reaching changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74655
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 1 Jul 2009 23:12:33 +0000 (23:12 +0000)]
Use find instead of operator[] to test whether an element is in a std::map.
This fixes a bug that caused -debug-pass=Details to abort.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74654
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 1 Jul 2009 22:33:26 +0000 (22:33 +0000)]
--- Reverse-merging (from foreign repository) r74648 into '.':
U include/llvm/LLVMContext.h
U lib/VMCore/LLVMContext.cpp
U lib/AsmParser/LLParser.cpp
U lib/AsmParser/LLParser.h
Temporarily reverting r74648. It was causing massive failures in release mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74653
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 22:10:23 +0000 (22:10 +0000)]
Keep DIDescriptor methods together.
No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74652
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 1 Jul 2009 21:59:43 +0000 (21:59 +0000)]
Fix a comment typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74650
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 21:58:14 +0000 (21:58 +0000)]
Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74649
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 21:57:44 +0000 (21:57 +0000)]
Convert LLParser to use LLVMContext for creating constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74648
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Bolka [Wed, 1 Jul 2009 21:45:23 +0000 (21:45 +0000)]
Use AA to check objects before LDA.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74647
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 1 Jul 2009 21:38:46 +0000 (21:38 +0000)]
Fix an instcombine abort on a scalar-to-vector bitcast. This fixes PR4487.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74646
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 1 Jul 2009 21:36:28 +0000 (21:36 +0000)]
Tweak FindExecutable so that relative executable paths work as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74645
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 21:26:41 +0000 (21:26 +0000)]
Add getMDNode() to access metadata node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74644
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 1 Jul 2009 21:22:45 +0000 (21:22 +0000)]
Fix up a comment: besides the >80col lines, the operation for this
addressing mode is encoded in the second operand, not the third.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74641
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 21:22:36 +0000 (21:22 +0000)]
Hold the LLVMContext by reference rather than by pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74640
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 20:59:15 +0000 (20:59 +0000)]
Fix metadata unittests
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74638
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 19:40:59 +0000 (19:40 +0000)]
new test case
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74633
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 19:39:39 +0000 (19:39 +0000)]
Do not print stranded metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74632
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 19:21:12 +0000 (19:21 +0000)]
Support stand alone metadata syntax.
!0 = constant metadata !{i32 21, i32 22}
@llvm.blah = constant metadata !{i32 1000, i16 200, metadata !0}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74630
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 19:08:07 +0000 (19:08 +0000)]
Add machine operand for MDNodes. This will be used to communicate debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74628
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 1 Jul 2009 18:51:07 +0000 (18:51 +0000)]
llvm.dbg.declare is always used for local variable's debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74625
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 1 Jul 2009 18:50:55 +0000 (18:50 +0000)]
Update comments to make it clear that the function alignment is the Log2 of the
bytes and not bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74624
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Wed, 1 Jul 2009 18:30:10 +0000 (18:30 +0000)]
Update configure and config.h.in from r74621.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74623
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 18:14:20 +0000 (18:14 +0000)]
Fix unit tests for LLVMContext+Module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74622
91177308-0d34-0410-b5e6-
96231b3b80d8
Jeffrey Yasskin [Wed, 1 Jul 2009 18:11:20 +0000 (18:11 +0000)]
Add a portable strerror*() wrapper, llvm::sys::StrError(). This includes the
Windows variant, strerror_s, but I couldn't test that.
I'll update configure and config.h.in in a subsequent patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74621
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 1 Jul 2009 17:51:56 +0000 (17:51 +0000)]
Use correct format for LLVM header #includes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74620
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 17:22:27 +0000 (17:22 +0000)]
I give up on trying to use reader/writer locks for recursive type refinement. Use a recursive mutex instead, which will (in theory) generate more contention, but is really
a much more natural fit for what's going on during recursive type refinement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74618
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 1 Jul 2009 16:58:40 +0000 (16:58 +0000)]
Add a pointer to the owning LLVMContext to Module. This requires threading LLVMContext through a lot
of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools.
Patches for Clang and LLVM-GCC to follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74614
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 1 Jul 2009 16:53:44 +0000 (16:53 +0000)]
Fix codegen for references to available_externally symbols. This fixes
PR4482.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74613
91177308-0d34-0410-b5e6-
96231b3b80d8