Jeffrey Yasskin [Tue, 9 Feb 2010 19:07:19 +0000 (19:07 +0000)]
Add support for TypeBuilder<const/volatile void*, false>.
Thanks to Jochen Wilhelmy for the suggestion!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95677
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 9 Feb 2010 17:29:18 +0000 (17:29 +0000)]
Pull these back out, they're a little too aggressive and time
consuming for a simple optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95671
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 9 Feb 2010 17:24:21 +0000 (17:24 +0000)]
Oops.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95670
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Tue, 9 Feb 2010 17:21:56 +0000 (17:21 +0000)]
Added vcvtb/vcvtt (between half-precision and single-precision, VFP).
For disassembly only.
A8.6.300
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95669
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 9 Feb 2010 17:20:11 +0000 (17:20 +0000)]
Remember to update live-in lists when coalescing physregs.
Patch by M Wahab!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95668
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 9 Feb 2010 17:20:03 +0000 (17:20 +0000)]
clang test suite
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95667
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Feb 2010 17:00:40 +0000 (17:00 +0000)]
Mention IndVarSimplify in the comment by getSmallConstantTripCount, as
is done for getTripCount.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95666
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Feb 2010 16:59:14 +0000 (16:59 +0000)]
Mention vAny and iPTRAny in a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95665
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 06:41:03 +0000 (06:41 +0000)]
move tests that depend on the x86 backend out of codegen/generic,
and remove a few old and unreduced ones. Fixes PR5624.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95656
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 06:36:30 +0000 (06:36 +0000)]
make target independent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95655
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 06:35:50 +0000 (06:35 +0000)]
merge a target-specific add test into x86 directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95654
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 06:33:27 +0000 (06:33 +0000)]
merge another test in, drop the trivially constant folded cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95653
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 06:24:00 +0000 (06:24 +0000)]
consolidate and filecheckize two tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95652
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 06:19:20 +0000 (06:19 +0000)]
merge two tests, make target independent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95651
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 05:55:14 +0000 (05:55 +0000)]
move PR3462 to here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95650
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 05:45:29 +0000 (05:45 +0000)]
add a note from PR6194
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95649
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 9 Feb 2010 02:01:46 +0000 (02:01 +0000)]
Skip DEBUG_VALUE in some places where it was affecting codegen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95647
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 9 Feb 2010 01:58:33 +0000 (01:58 +0000)]
Add declaration attribute to a variable DIE, if there is a separate DIE for the definition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95646
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Tue, 9 Feb 2010 01:50:54 +0000 (01:50 +0000)]
Updated the enhanced disassembly library to produce
whitespace tokens in the right places.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95645
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 01:39:46 +0000 (01:39 +0000)]
fix llvm_build_struct_gep for PR6167, patch by
Peter Hawkins!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95644
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 01:14:06 +0000 (01:14 +0000)]
simplify this code, duh.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95643
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 01:12:41 +0000 (01:12 +0000)]
fix PR6193, only considering sign extensions *from i1* for this
xform.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95642
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 9 Feb 2010 01:11:03 +0000 (01:11 +0000)]
Add file in here too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95641
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Tue, 9 Feb 2010 01:00:18 +0000 (01:00 +0000)]
Fixed a problem where the enhanced disassembly
library was reporting inaccurate token IDs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95639
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 00:54:51 +0000 (00:54 +0000)]
make -show-inst be formatted a bit nicer. Before:
movl $
3735928559, a ## inst: <MCInst 1273 <MCOperand Reg:0> <MCOperand Imm:1> <MCOperand Reg:0> <MCOperand Expr:(a)> <MCOperand Reg:0> <MCOperand Expr:(
3735928559)>>
after:
movl $
3735928559, a ## <MCInst #1273
## <MCOperand Reg:0>
## <MCOperand Imm:1>
## <MCOperand Reg:0>
## <MCOperand Expr:(a)>
## <MCOperand Reg:0>
## <MCOperand Expr:(
3735928559)>>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95637
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 9 Feb 2010 00:50:27 +0000 (00:50 +0000)]
Fixed a bug in the PBQP allocator's findCoalesces method.
Previously spill registers, whose def indexes are not defined, would sometimes be improperly marked as coalescable with conflicting registers. The new findCoalesces routine conservatively assumes that any register with at least one undefined def is not coalescable with any register it interferes with.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95636
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 00:49:22 +0000 (00:49 +0000)]
Implement x86 asm parsing support for %st and %st(4)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95634
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 9 Feb 2010 00:45:48 +0000 (00:45 +0000)]
Added copy sensible construction & assignment to PBQP graphs and fixed a memory access bug in the heuristic solver.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95633
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Tue, 9 Feb 2010 00:42:08 +0000 (00:42 +0000)]
Debug operands should not be def or kill.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95632
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 9 Feb 2010 00:41:23 +0000 (00:41 +0000)]
Changed the definition of an "invalid" slot to include the empty & tombstone values, but not zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95631
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 00:40:07 +0000 (00:40 +0000)]
stop using reserved identifiers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95630
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Tue, 9 Feb 2010 00:35:38 +0000 (00:35 +0000)]
Add a new pass to do llvm.objsize lowering using SCEV.
Initial skeleton and SCEVUnknown lowering implemented,
the rest should come relatively quickly. Move testcase
to new directory.
Move pass to right before SimplifyLibCalls - which is
moved down a bit so we can take advantage of a few opts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95628
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 00:34:28 +0000 (00:34 +0000)]
pass stringref by value instead of by const&
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95627
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Feb 2010 00:29:29 +0000 (00:29 +0000)]
Add explicit keywords.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95626
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 00:11:10 +0000 (00:11 +0000)]
move PR6212 to this file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95624
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 9 Feb 2010 00:05:45 +0000 (00:05 +0000)]
enhance bits_storage to work with enums by using a c-style
cast instead of reinterpret_cast, fixing PR6243. Apparently
reinterpret_cast and I aren't getting along today.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95622
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 9 Feb 2010 00:02:37 +0000 (00:02 +0000)]
Implement AsmPrinter support for several more operators which have
direct MCExpr equivalents. Don't use MCExpr::Shr because it isn't
consistent between targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95620
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Feb 2010 23:58:47 +0000 (23:58 +0000)]
Document that MCExpr::Mod is actually remainder.
Document that MCExpr::Div, Mod, and the comparison operators are all
signed operators.
Document that the comparison operators' results are target-dependent.
Document that the behavior of shr is target-dependent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95619
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 23:56:03 +0000 (23:56 +0000)]
fix some problems handling large vectors reported in PR6230
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95616
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 23:48:10 +0000 (23:48 +0000)]
this is done, tested by CodeGen/ARM/iabs.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95609
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 23:47:34 +0000 (23:47 +0000)]
convert to filecheck.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95608
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Mon, 8 Feb 2010 23:34:25 +0000 (23:34 +0000)]
Added header file declarations and .exports entries
for the new APIs offered by the enhanced disassembler
for inspecting operands.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95606
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 8 Feb 2010 23:27:46 +0000 (23:27 +0000)]
test case for r95604.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95605
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 8 Feb 2010 23:22:00 +0000 (23:22 +0000)]
tighten up eh.setjmp sequence a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95603
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 23:10:08 +0000 (23:10 +0000)]
now that @GOTOFF is no longer represented as a suffix on a
MCSymbol, we can remove the 'suffix' argument of
GetBlockAddressSymbol. Do so.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95601
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 23:03:41 +0000 (23:03 +0000)]
unify the paths for external symbols and global variables:
2 files changed, 48 insertions(+), 83 deletions(-)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95599
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 22:52:47 +0000 (22:52 +0000)]
switch the rest of the "@ concatentation" logic in the X86
backend to use X86MCTargetExpr, simplifying a bunch of code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95595
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Mon, 8 Feb 2010 22:50:23 +0000 (22:50 +0000)]
Fixed the AT&T AsmLexer to report the proper strings
for register tokens. Before, if it encountered
'%al,' it would report 'al,' as the token. Now it
correctly reports '%al'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95594
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 22:33:55 +0000 (22:33 +0000)]
switch ELF @GOTOFF references to use X86MCTargetExpr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95593
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Feb 2010 22:19:11 +0000 (22:19 +0000)]
ConstantFoldConstantExpression can theoretically return the original
expression; don't go into an infinite loop if it does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95591
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 22:09:08 +0000 (22:09 +0000)]
add an x86 implementation of MCTargetExpr for
representing @GOT and friends. Use it for
personality references as a first use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95588
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 22:07:36 +0000 (22:07 +0000)]
don't make hte dtor private or we can't construct the class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95587
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 22:05:38 +0000 (22:05 +0000)]
use a c-style cast instead of reinterpret-cast, as sometimes the
cast needs to adjust for a vtable pointer when going from base to
derived type (when the base doesn't have a vtable but the
derived type does).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95585
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Mon, 8 Feb 2010 22:02:41 +0000 (22:02 +0000)]
Add VCVTR (between floating-point and integer, VFP) for disassembly purpose.
The 'R' suffix means the to-integer operations use the rounding mode specified
by the FPSCR, encoded as Inst{7} = 0.
A8.6.295
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95584
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Feb 2010 22:02:38 +0000 (22:02 +0000)]
When CodeGen'ing unoptimized code, there may be unfolded constant expressions
in global initializers. Instead of aborting, attempt to fold them on the
spot. If folding succeeds, emit the folded expression instead.
This fixes PR6255.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95583
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Feb 2010 22:00:06 +0000 (22:00 +0000)]
Add const qualifiers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95582
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Mon, 8 Feb 2010 21:53:27 +0000 (21:53 +0000)]
Apply the 95471 fix to SelectionDAGBuilder as well;
we can get in here if FastISel gives up in a block.
(Actually the two copies of this need to be unified. Later.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95579
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Feb 2010 20:34:14 +0000 (20:34 +0000)]
In guaranteed tailcall mode, don't decline the tailcall optimization
for blocks ending in "unreachable".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95565
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 8 Feb 2010 20:27:50 +0000 (20:27 +0000)]
Rename the PerformTailCallOpt variable to GuaranteedTailCallOpt to reflect
its current purpose.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95564
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Mon, 8 Feb 2010 19:41:48 +0000 (19:41 +0000)]
Add VCMP (VFP floating-point compare without 'E' bit set) for disassembly purpose.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95560
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 8 Feb 2010 19:41:07 +0000 (19:41 +0000)]
add scaffolding for target-specific MCExprs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95559
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 8 Feb 2010 19:36:51 +0000 (19:36 +0000)]
Flesh out the list of predicates, for those who like this style. I was
looking for isPointer, and added the rest for uniformity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95557
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 8 Feb 2010 18:08:46 +0000 (18:08 +0000)]
ImmutableIntervalMap: Fix for unqualified lookup into dependent base class, done
by clang's -fixit! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95551
91177308-0d34-0410-b5e6-
96231b3b80d8
Johnny Chen [Mon, 8 Feb 2010 17:26:09 +0000 (17:26 +0000)]
Added VMOVRRS/VMOVSRR to ARMInstrVFP.td for disassembly purpose.
A8.6.331 VMOV (between two ARM core registers and two single-precision registers)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95548
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Mon, 8 Feb 2010 11:03:31 +0000 (11:03 +0000)]
Fix some typos.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95542
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Mon, 8 Feb 2010 08:37:27 +0000 (08:37 +0000)]
Fix x86 JIT stub on MSVC.
Thanks to Kristaps Straupe for noticing the bug.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95537
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Mon, 8 Feb 2010 06:08:32 +0000 (06:08 +0000)]
Fixed build error for redefinition.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95532
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Mon, 8 Feb 2010 05:56:37 +0000 (05:56 +0000)]
Add uppercase and lowercase part defines in driver.
Use a temp dir with a unique name in the current dir itself.
Use forward_value instead of unpack_values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95530
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sun, 7 Feb 2010 21:13:46 +0000 (21:13 +0000)]
Make the destructor for TypeMapBase protected. Spotted by Duncan Sands with
cppcheck!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95527
91177308-0d34-0410-b5e6-
96231b3b80d8
Duncan Sands [Sun, 7 Feb 2010 21:09:22 +0000 (21:09 +0000)]
Give DwarfPrinter a protected (but not virtual) destructor. Cppcheck
warns about this base class not having a virtual destructor, but since
this class has no virtual methods and neither it or the types derived
from it has a destructor, a protected trivial destructor will do (and
shuts cppcheck up) the trick without the cost of introducing a vtable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95526
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 6 Feb 2010 21:00:02 +0000 (21:00 +0000)]
Add suport for VASTART on Mips.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95506
91177308-0d34-0410-b5e6-
96231b3b80d8
Bruno Cardoso Lopes [Sat, 6 Feb 2010 19:20:49 +0000 (19:20 +0000)]
First step towards varargs support in Mips:
- o32 cc must pass all arguments in A0...A3 and stack regardless
if its type (but respect the alignment).
- Store all variable arguments back to the caller stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95500
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 6 Feb 2010 09:07:11 +0000 (09:07 +0000)]
Run codegen dce pass for all targets at all optimization levels. Previously it's
only run for x86 with fastisel. I've found it being very effective in
eliminating some obvious dead code as result of formal parameter lowering
especially when tail call optimization eliminated the need for some of the loads
from fixed frame objects. It also shrinks a number of the tests. A couple of
tests no longer make sense and are now eliminated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95493
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 6 Feb 2010 09:00:30 +0000 (09:00 +0000)]
Remove a large test case that (soon will) no longer make sense.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95492
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 6 Feb 2010 05:55:20 +0000 (05:55 +0000)]
Fix an uninitialized value. Radar
7609421.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95488
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 6 Feb 2010 03:32:21 +0000 (03:32 +0000)]
Fix alignment on ppc linux. This fixes the build of crtend.o
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95477
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 6 Feb 2010 03:28:46 +0000 (03:28 +0000)]
Do not emit callseq instructions around sibcalls. This eliminated some unnecessary stack adjustments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95475
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sat, 6 Feb 2010 02:28:32 +0000 (02:28 +0000)]
Add a Debug bit to MachineOperand, for uses that
are from debug info. Add an iterator to MachineRegisterInfo
to skip Debug operands when walking the use list. No
functional change yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95473
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Sat, 6 Feb 2010 02:26:02 +0000 (02:26 +0000)]
After Victor's latest commits I am seeing null
addresses in dbg.declare; ignore this for the
moment to prevent things from breaking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95471
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Sat, 6 Feb 2010 01:31:55 +0000 (01:31 +0000)]
Linker should not remap null operands of metadata
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95468
91177308-0d34-0410-b5e6-
96231b3b80d8
Victor Hernandez [Sat, 6 Feb 2010 01:21:09 +0000 (01:21 +0000)]
Function-local metadata whose operands had been optimized to no longer refer to function-local IR were not getting written by BitcodeWriter; solution is for these metadata to be enumerated just like global metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95467
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sat, 6 Feb 2010 01:16:28 +0000 (01:16 +0000)]
Reintroduce the InlineHint function attribute.
This time it's for real! I am going to hook this up in the frontends as well.
The inliner has some experimental heuristics for dealing with the inline hint.
When given a -respect-inlinehint option, functions marked with the inline
keyword are given a threshold just above the default for -O3.
We need some experiments to determine if that is the right thing to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95466
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 6 Feb 2010 01:16:25 +0000 (01:16 +0000)]
Add a test for my change to disable reassociation for i1 types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95465
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Sat, 6 Feb 2010 01:02:37 +0000 (01:02 +0000)]
Set DW_AT_artificial only if argument is marked as artificial.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95461
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 6 Feb 2010 00:24:38 +0000 (00:24 +0000)]
Handle AddrMode6 (for NEON load/stores) in Thumb2's rewriteT2FrameIndex.
Radar
7614112.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95456
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 5 Feb 2010 23:21:31 +0000 (23:21 +0000)]
Don't unroll loops containing function calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95454
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 5 Feb 2010 23:21:18 +0000 (23:21 +0000)]
Update CodeMetrics to count 'big' function calls explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95453
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 5 Feb 2010 23:09:20 +0000 (23:09 +0000)]
Do not generate specification DIE for nested functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95452
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 22:56:11 +0000 (22:56 +0000)]
fix incorrect encoding of SBB8mi that Kevin noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95448
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 22:49:06 +0000 (22:49 +0000)]
fix a case where we'd mis-encode fisttp because of an incorrect (and
redundant with a correct one) pattern that was added for the disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95446
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 22:48:33 +0000 (22:48 +0000)]
add note.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95445
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 22:46:46 +0000 (22:46 +0000)]
remove fixme
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95444
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 22:20:08 +0000 (22:20 +0000)]
print encodings like this:
pslld 69, %mm3 ## encoding: [0x0f,0xf2,0x1c,0x25,0x45,0x00,0x00,0x00]
instead of like this:
pslld 69, %mm3 ## encoding: [0x0f,0xf2,0x1c,0x25,0x45,0000,0000,0000]
this only affects 0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95441
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 22:10:22 +0000 (22:10 +0000)]
port X86InstrInfo::determineREX over to the new encoder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95440
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 5 Feb 2010 22:03:18 +0000 (22:03 +0000)]
Teach SimplifyCFG about magic pointer constants.
Weird code sometimes uses pointer constants other than null. This patch
teaches SimplifyCFG to build switch instructions in those cases.
Code like this:
void f(const char *x) {
if (!x)
puts("null");
else if ((uintptr_t)x == 1)
puts("one");
else if (x == (char*)2 || x == (char*)3)
puts("two");
else if ((intptr_t)x == 4)
puts("four");
else
puts(x);
}
Now becomes a switch:
define void @f(i8* %x) nounwind ssp {
entry:
%magicptr23 = ptrtoint i8* %x to i64 ; <i64> [#uses=1]
switch i64 %magicptr23, label %if.else16 [
i64 0, label %if.then
i64 1, label %if.then2
i64 2, label %if.then9
i64 3, label %if.then9
i64 4, label %if.then14
]
Note that LLVM's own DenseMap uses magic pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95439
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 21:51:35 +0000 (21:51 +0000)]
wire up 64-bit MCCodeEmitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95438
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 21:34:18 +0000 (21:34 +0000)]
really kill off the last MRMInitReg inst, remove logic from encoder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95437
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 21:30:49 +0000 (21:30 +0000)]
lower the last of the MRMInitReg instructions in MCInstLower.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95435
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 21:21:06 +0000 (21:21 +0000)]
teach X86MCInstLower to lower the MOV32r0 and MOV8r0
pseudo instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95433
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 5 Feb 2010 21:15:57 +0000 (21:15 +0000)]
genericize helpers, use them for MOV16r0/MOV64r0
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95432
91177308-0d34-0410-b5e6-
96231b3b80d8