Evan Cheng [Fri, 19 Oct 2007 21:23:22 +0000 (21:23 +0000)]
Local spiller optimization:
Turn a store folding instruction into a load folding instruction. e.g.
xorl %edi, %eax
movl %eax, -32(%ebp)
movl -36(%ebp), %eax
orl %eax, -32(%ebp)
=>
xorl %edi, %eax
orl -36(%ebp), %eax
mov %eax, -32(%ebp)
This enables the unfolding optimization for a subsequent instruction which will
also eliminate the newly introduced store instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43192
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 19 Oct 2007 21:09:55 +0000 (21:09 +0000)]
Don't branch fold inline asm statements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43191
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Oct 2007 20:29:48 +0000 (20:29 +0000)]
Add support for a few more nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43190
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 19 Oct 2007 20:29:00 +0000 (20:29 +0000)]
Redo "last ppc long double fix" as Chris wants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43189
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 19 Oct 2007 18:49:16 +0000 (18:49 +0000)]
Removed "-arch i386" by popular demand...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43186
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 19 Oct 2007 18:40:53 +0000 (18:40 +0000)]
Now with RUN line!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43185
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 19 Oct 2007 18:36:04 +0000 (18:36 +0000)]
Remove the Foundation.h file because not everyone has that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43184
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 19 Oct 2007 17:11:01 +0000 (17:11 +0000)]
This test now passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43183
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Fri, 19 Oct 2007 16:54:13 +0000 (16:54 +0000)]
Update this file for 2.0 syntax. Contributed by Jan Rehders
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43182
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 16:47:35 +0000 (16:47 +0000)]
Fix a really nasty vector miscompilation bill recently introduced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43181
91177308-0d34-0410-b5e6-
96231b3b80d8
Hartmut Kaiser [Fri, 19 Oct 2007 15:51:20 +0000 (15:51 +0000)]
Updated VC++ build system
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43180
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 15:28:47 +0000 (15:28 +0000)]
rename ExpandOperation to ExpandOperationResult, as suggested
by Duncan
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43177
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 19 Oct 2007 14:35:17 +0000 (14:35 +0000)]
split LowerMEMCPY into LowerMEMCPYCall and LowerMEMCPYInline in the ARM backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43176
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Oct 2007 13:06:17 +0000 (13:06 +0000)]
Support for expanding ADDE and SUBE.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43175
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Fri, 19 Oct 2007 13:05:40 +0000 (13:05 +0000)]
If the value types are equal then this routine
asserts in later checks rather than producing
the ordinary load it is supposed to. Avoid all
such hassles by directly returning an ordinary
load in this case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43174
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 19 Oct 2007 11:29:21 +0000 (11:29 +0000)]
Test byval with a 8 bit aligned struct
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43173
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 19 Oct 2007 10:41:11 +0000 (10:41 +0000)]
Add support for byval function whose argument is not 32 bit aligned.
To do this it is necessary to add a "always inline" argument to the
memcpy node. For completeness I have also added this node to memmove
and memset. I have also added getMem* functions, because the extra
argument makes it cumbersome to use getNode and because I get confused
by it :-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43172
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 04:46:45 +0000 (04:46 +0000)]
Implement a few new operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43171
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 04:32:47 +0000 (04:32 +0000)]
Implement expansion of SINT_TO_FP and UINT_TO_FP operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43170
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 04:14:36 +0000 (04:14 +0000)]
implement support for custom expansion of any node type, in one place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43169
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 04:08:28 +0000 (04:08 +0000)]
comment fixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43168
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 03:58:25 +0000 (03:58 +0000)]
Make use of TLI.ExpandOperation, remove softfloat stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43167
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 03:33:14 +0000 (03:33 +0000)]
add expand support for bit_convert result, even allowing custom expansion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43166
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 03:31:45 +0000 (03:31 +0000)]
add a new target hook.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43165
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 19 Oct 2007 03:29:26 +0000 (03:29 +0000)]
Add an easy microoptimization I noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43164
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 19 Oct 2007 01:28:02 +0000 (01:28 +0000)]
New test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43162
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 19 Oct 2007 01:10:49 +0000 (01:10 +0000)]
Negative indices aren't allowed here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43161
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Fri, 19 Oct 2007 00:59:18 +0000 (00:59 +0000)]
More ppcf128 issues (maybe the last)?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43160
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Oct 2007 22:40:57 +0000 (22:40 +0000)]
- Added getOpcodeAfterMemoryUnfold(). It doesn't unfold an instruction, but only returns the opcode of the instruction post unfolding.
- Fix some copy+paste bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43153
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Oct 2007 21:29:24 +0000 (21:29 +0000)]
Use SmallVectorImpl instead of SmallVector with hardcoded size in MRegister public interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43150
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 18 Oct 2007 19:52:32 +0000 (19:52 +0000)]
Try again.
Instead of loading small global string from memory, use
integer constant.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43148
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 18 Oct 2007 19:39:33 +0000 (19:39 +0000)]
Allow GVN to eliminate redundant calls to functions without side effects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43147
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Thu, 18 Oct 2007 19:31:38 +0000 (19:31 +0000)]
Add an uppercase conversion utility function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43146
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Thu, 18 Oct 2007 19:29:45 +0000 (19:29 +0000)]
Fix a misnamed parameter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43145
91177308-0d34-0410-b5e6-
96231b3b80d8
Christopher Lamb [Thu, 18 Oct 2007 19:28:55 +0000 (19:28 +0000)]
Fix a typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43144
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 18:49:29 +0000 (18:49 +0000)]
Fix PR1735 and Transforms/DeadArgElim/2007-10-18-VarargsReturn.ll by
fixing some obviously broken code :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43141
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 18 Oct 2007 18:26:40 +0000 (18:26 +0000)]
Fix the command line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43140
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 18 Oct 2007 17:54:49 +0000 (17:54 +0000)]
Fix test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43136
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 16:26:24 +0000 (16:26 +0000)]
this doesn't need dynamic_cast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43133
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 16:12:54 +0000 (16:12 +0000)]
remove dead file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43131
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 16:11:18 +0000 (16:11 +0000)]
Reduce reliance on rtti info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43130
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 16:10:48 +0000 (16:10 +0000)]
fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43129
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 16:10:17 +0000 (16:10 +0000)]
update comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43128
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 15:57:29 +0000 (15:57 +0000)]
This requires rtti info because tblgen uses commandline,
and tblgen requires rtti.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43127
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 15:54:45 +0000 (15:54 +0000)]
tblgen uses dynamic_cast heavily, so it needs rtti info
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43126
91177308-0d34-0410-b5e6-
96231b3b80d8
Hartmut Kaiser [Thu, 18 Oct 2007 12:31:51 +0000 (12:31 +0000)]
Updated VC++ build system
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43123
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Thu, 18 Oct 2007 11:53:05 +0000 (11:53 +0000)]
Work around downrev gccs which do not inherit visibility of the
Registry<>::iterator member class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43122
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Thu, 18 Oct 2007 11:31:21 +0000 (11:31 +0000)]
Missing 'public' keyword.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43121
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 18 Oct 2007 08:32:37 +0000 (08:32 +0000)]
Pointer arithmetic should be done with the index the same size as the pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43120
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Thu, 18 Oct 2007 08:22:16 +0000 (08:22 +0000)]
Support for ADDC/SUBC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43119
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Oct 2007 07:49:59 +0000 (07:49 +0000)]
Really fix PR1734. Carefully track which register uses are sub-register uses by
traversing inverse register coalescing map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43118
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 18 Oct 2007 07:47:55 +0000 (07:47 +0000)]
Remove unnecessary include.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43117
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 18 Oct 2007 06:17:07 +0000 (06:17 +0000)]
legalizing the ret operation on f64 shouldn't introduce a new
i64 bit convert needlessly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43116
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 18 Oct 2007 05:13:52 +0000 (05:13 +0000)]
Move Split<...>() into DomTreeBase. This should make the #include's of DominatorInternals.h
in CodeExtractor and LoopSimplify unnecessary.
Hartmut, could you confirm that this fixes the issues you were seeing?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43115
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 18 Oct 2007 00:48:43 +0000 (00:48 +0000)]
XFAIL for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43111
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 18 Oct 2007 00:30:14 +0000 (00:30 +0000)]
Changed the return type of type-specific Allocate() methods to return
void*. This is hint that we are returning uninitialized memory rather
than a constructed object.
Patched ImutAVLTree to conform to this new interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43106
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Oct 2007 23:51:13 +0000 (23:51 +0000)]
Reverting r43070 for now. It's causing llc test failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43103
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Wed, 17 Oct 2007 23:14:56 +0000 (23:14 +0000)]
Test to make sure we don't generate unwind info for non-64-bit Objective-C.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43102
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 17 Oct 2007 22:17:01 +0000 (22:17 +0000)]
ImutAVLTree now allocates tree nodes from the BumpPtrAllocator using
the new type-aligned Allocate() method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43100
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 17 Oct 2007 22:12:14 +0000 (22:12 +0000)]
Removed inclusion of cassert, which is no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43099
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 17 Oct 2007 22:09:45 +0000 (22:09 +0000)]
Minor cosmetic cleanups in the calculation of alignments for
StringMapEntry objects. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43097
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 17 Oct 2007 22:08:55 +0000 (22:08 +0000)]
Added template function alignof() which provides a clean
function-based interface to getting the alignment of a type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43096
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 17 Oct 2007 21:36:08 +0000 (21:36 +0000)]
Reverting unnecessary commit of generated files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43095
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 17 Oct 2007 21:28:48 +0000 (21:28 +0000)]
Switching TargetMachineRegistry to use the new generic Registry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43094
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 17 Oct 2007 21:13:50 +0000 (21:13 +0000)]
Updated StringMap to use llvm::AlignOf to compute the alignment of map
entries.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43089
91177308-0d34-0410-b5e6-
96231b3b80d8
Gordon Henriksen [Wed, 17 Oct 2007 21:11:33 +0000 (21:11 +0000)]
Ignoring test/Transforms/LoopIndexSplit/Output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43088
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 17 Oct 2007 21:10:21 +0000 (21:10 +0000)]
Added member template functions to MallocAllocator and
BumpPtrAllocator that implement allocations that return a properly
typed pointer. For BumpPtrAllocator, the allocated memory is
automatically aligned to the minimum alignment of the type (as
calculated by llvm::AlignOf::Alignment).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43087
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 17 Oct 2007 20:56:47 +0000 (20:56 +0000)]
Added llvm::AlignOf, a template class whose purpose is to portably
compute the minimum memory alignment of arbitrary types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43086
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 17 Oct 2007 20:12:58 +0000 (20:12 +0000)]
Do not raise free() call that is called through invoke instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43083
91177308-0d34-0410-b5e6-
96231b3b80d8
Hartmut Kaiser [Wed, 17 Oct 2007 18:37:09 +0000 (18:37 +0000)]
Fixed linker errors (unresolved externals: split<>(...)) when compiling with VC++. Please review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43081
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 17 Oct 2007 18:05:13 +0000 (18:05 +0000)]
Don't mention -enable-unsafe-fp-math in LangRef.html, as that option is
assumed to globally mutate the spec.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43078
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 17 Oct 2007 17:51:30 +0000 (17:51 +0000)]
Define a helper function ConstantVector::getSplatValue for testing for
and working with broadcasted constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43076
91177308-0d34-0410-b5e6-
96231b3b80d8
Hartmut Kaiser [Wed, 17 Oct 2007 14:56:40 +0000 (14:56 +0000)]
Updated VC++ build system.
Silenced some VC warnings.
I'm getting linker errors, though: unresolved externals:
llvm::Split<class llvm::BasicBlock *,struct llvm::GraphTraits<class llvm::BasicBlock *> >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)
and
llvm::Split<struct llvm::Inverse<class llvm::BasicBlock *>,struct llvm::GraphTraits<struct llvm::Inverse<class llvm::BasicBlock *> > >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *)
Where are these defined?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43073
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 17 Oct 2007 14:48:28 +0000 (14:48 +0000)]
Add support for ISD::SELECT in SplitVectorOp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43072
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Wed, 17 Oct 2007 13:49:58 +0000 (13:49 +0000)]
Return Expand from getOperationAction for all extended
types. This is needed for SIGN_EXTEND_INREG at least.
It is not clear if this is correct for other operations.
On the other hand, for the various load/store actions
it seems to correct to return the type action, as is
currently done.
Also, it seems that SelectionDAG::getValueType can be
called for extended value types; introduce a map for
holding these, since we don't really want to extend
the vector to be 2^32 pointers long!
Generalize DAGTypeLegalizer::PromoteResult_TRUNCATE
and DAGTypeLegalizer::PromoteResult_INT_EXTEND to handle
the various funky possibilities that apints introduce,
for example that you can promote to a type that needs
to be expanded.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43071
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 17 Oct 2007 07:24:40 +0000 (07:24 +0000)]
Apply "Instead of loading small c string constant, use integer constant directly" transformation while processing load instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43070
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Oct 2007 06:53:44 +0000 (06:53 +0000)]
Apply Chris' suggestions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43069
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 Oct 2007 06:17:29 +0000 (06:17 +0000)]
Change fp to sint legalization on x86-32 to do 2 x i32
loads instead of 1 x i64 loads. This doesn't change any functionality yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43068
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 17 Oct 2007 06:02:13 +0000 (06:02 +0000)]
fix some funny indentation, add comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43066
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Oct 2007 05:29:37 +0000 (05:29 +0000)]
One more extract_subreg coalescing bug fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43065
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Oct 2007 02:16:40 +0000 (02:16 +0000)]
Update comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43064
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Oct 2007 02:15:06 +0000 (02:15 +0000)]
Yet another test case for extract_subreg coalescing crash.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43063
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Oct 2007 02:13:29 +0000 (02:13 +0000)]
Fix MergeValueInAsValue(). It allows overlapping live ranges but should replace
their value numbers with the specified value number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43062
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Oct 2007 02:12:22 +0000 (02:12 +0000)]
Clean up code that calculate MBB live-in's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43061
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Wed, 17 Oct 2007 02:10:22 +0000 (02:10 +0000)]
Clean up code that calculate MBB live-in's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43060
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 17 Oct 2007 02:03:17 +0000 (02:03 +0000)]
Move splitBlock into DomTreeBase from DomTree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43059
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 16 Oct 2007 23:44:18 +0000 (23:44 +0000)]
Use immediate stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43055
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 16 Oct 2007 23:38:29 +0000 (23:38 +0000)]
Disable attempts to constant fold PPC f128.
Remove the assumption that this will happen from
various places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43053
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 16 Oct 2007 22:59:15 +0000 (22:59 +0000)]
Fix some formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43049
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 16 Oct 2007 21:09:14 +0000 (21:09 +0000)]
Some clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43043
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 16 Oct 2007 19:59:25 +0000 (19:59 +0000)]
Template DominatorTreeBase by node type. This is the next major step towards
having dominator information on MBB's.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43036
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 16 Oct 2007 19:29:47 +0000 (19:29 +0000)]
Fix PR1734.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43035
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 16 Oct 2007 18:10:14 +0000 (18:10 +0000)]
New test for svn rev 43033, radar
5538745.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43034
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 16 Oct 2007 18:09:08 +0000 (18:09 +0000)]
Check for invalid cc's in f80 select.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43033
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 16 Oct 2007 18:00:18 +0000 (18:00 +0000)]
Fix a bug handling frame references in ppc inline asm when the frame offset
doesn't fit into 16 bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43032
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 16 Oct 2007 13:34:11 +0000 (13:34 +0000)]
Document the fact that the verifier currently requires the
top bit of a ValueType to be zero. Enforce this by ensuring
an assertion failure if someone tries to create a ValueType
without this property. I chose this minimal approach rather
than a more official integration of the notion of reserved
bits into ValueType because I'm hoping that the verifier will
be changed to no longer require this :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43031
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 16 Oct 2007 09:56:48 +0000 (09:56 +0000)]
Initial infrastructure for arbitrary precision integer
codegen support. This should have no effect on codegen
for other types. Debatable bits: (1) the use (abuse?)
of a set in SDNode::getValueTypeList; (2) the length of
getTypeToTransformTo, which maybe should be refactored
with a non-inline part for extended value types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43030
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Tue, 16 Oct 2007 09:07:20 +0000 (09:07 +0000)]
Fixes due to lack of type-safety for ValueType: (1) ValueType
being passed instead of an opcode; (2) ValueType being passed
for isVolatile (!) in getLoad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43028
91177308-0d34-0410-b5e6-
96231b3b80d8
Arnold Schwaighofer [Tue, 16 Oct 2007 09:05:00 +0000 (09:05 +0000)]
Correction to tail call optimization code. The new return address
was stored to the acutal stack slot before the parameters were
lowered to their stack slot. This could cause arguments to be
overwritten by the return address if the called function had less
parameters than the caller function. The update should remove the
last failing test case of llc-beta: SPASS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43027
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 16 Oct 2007 08:04:24 +0000 (08:04 +0000)]
Code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43026
91177308-0d34-0410-b5e6-
96231b3b80d8