Mikhail Glushenkov [Tue, 21 Sep 2010 14:59:47 +0000 (14:59 +0000)]
llvmc: split llvm_gcc_based into llvm_gcc_{pch,comp}_based.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114434
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Tue, 21 Sep 2010 14:59:42 +0000 (14:59 +0000)]
llvmc: Allow multiple output languages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114433
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Tue, 21 Sep 2010 14:59:34 +0000 (14:59 +0000)]
Trailing whitespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114432
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 21 Sep 2010 13:47:10 +0000 (13:47 +0000)]
Fixed ambiguous call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114431
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 21 Sep 2010 13:30:57 +0000 (13:30 +0000)]
Fix buglet when the TST instruction directly uses the AND result.
I am unable to write a test for this case, help is solicited, though...
What I did is to tickle the code in the debugger and verify that we do the right thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114430
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Tue, 21 Sep 2010 13:19:36 +0000 (13:19 +0000)]
Added an additional PBQP problem builder which adds coalescing costs (both between pairs of virtuals, and between virtuals and physicals).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114429
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Tue, 21 Sep 2010 12:01:15 +0000 (12:01 +0000)]
Move the search for the appropriate AND instruction
into OptimizeCompareInstr.
This necessitates the passing of CmpValue around,
so widen the virtual functions to accomodate.
No functionality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114428
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Tue, 21 Sep 2010 11:57:04 +0000 (11:57 +0000)]
llvmc: put linker options in a separate OptList.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114427
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 07:32:19 +0000 (07:32 +0000)]
a few more trivial updates. This fixes PerformInsertVectorEltInMemory to not
pass a completely incorrect SrcValue, which would result in a miscompile with
combiner-aa.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114411
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 06:44:06 +0000 (06:44 +0000)]
convert the targets off the non-MachinePointerInfo of getLoad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114410
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 06:43:24 +0000 (06:43 +0000)]
add some accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114409
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 06:22:23 +0000 (06:22 +0000)]
it's more elegant to put the "getConstantPool" and
"getFixedStack" on the MachinePointerInfo class. While
this isn't the problem I'm setting out to solve, it is the
right way to eliminate PseudoSourceValue, so lets go with it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114406
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 06:16:40 +0000 (06:16 +0000)]
ugh, missed a file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114405
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 06:02:19 +0000 (06:02 +0000)]
update the X86 backend to use the MachinePointerInfo version of one
of the getLoad methods. This fixes at least one bug where an incorrect
svoffset is passed in (a potential combiner-aa miscompile).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114404
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 05:43:34 +0000 (05:43 +0000)]
Fix a bug where the x86 backend would lower memcpy/memset of segment relative operations
into non-segment-relative copies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114402
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 05:40:29 +0000 (05:40 +0000)]
reimplement memcpy/memmove/memset lowering to use MachinePointerInfo
instead of srcvalue/offset pairs. This corrects SV info for mem
operations whose size is > 32-bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114401
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 05:39:30 +0000 (05:39 +0000)]
add some helpful accessors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114400
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 05:10:45 +0000 (05:10 +0000)]
add overloads for SelectionDAG::getLoad, getStore, getTruncStore that take a
MachinePointerInfo. Among other virtues, this doesn't silently truncate the
svoffset to 32-bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114399
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 04:57:15 +0000 (04:57 +0000)]
simplify interface to SelectionDAG::getMemIntrinsicNode, making it take a MachinePointerInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114397
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 04:53:42 +0000 (04:53 +0000)]
chagne interface to SelectionDAG::getAtomic to take a MachinePointerInfo,
eliminating some weird "infer a frame address" logic which was dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114396
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 04:51:11 +0000 (04:51 +0000)]
don't implicitly drop the offset of a machinememoperand when legalizing atomics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114395
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 04:46:39 +0000 (04:46 +0000)]
force clients of MachineFunction::getMachineMemOperand to provide a
MachinePointerInfo, propagating the type out a level of API. Remove
the old MachineFunction::getMachineMemOperand impl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114393
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 04:39:43 +0000 (04:39 +0000)]
convert targets to the new MF.getMachineMemOperand interface.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114391
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 04:32:08 +0000 (04:32 +0000)]
start pushing MachinePointerInfo out through the MachineMemOperand interface
to the MachineFunction construction methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114390
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 04:23:39 +0000 (04:23 +0000)]
refactor the Value*/offset pair from MachineMemOperand out to a new
MachinePointerInfo struct, no functionality change.
This also adds an assert to MachineMemOperand::MachineMemOperand
that verifies that the Value* is either null or is an IR pointer type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114389
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 04:03:39 +0000 (04:03 +0000)]
random cruft in my tree.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114387
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 03:37:00 +0000 (03:37 +0000)]
fix rdar://
8453210, a crash handling a call through a GS relative load.
For now, just disable folding the load into the call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114386
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 21 Sep 2010 00:40:19 +0000 (00:40 +0000)]
Revert unrelated change that was accidentally included in the previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114383
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 21 Sep 2010 00:24:38 +0000 (00:24 +0000)]
Implement support for .local and its "interesting" interactions with .comm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114382
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 20 Sep 2010 22:52:00 +0000 (22:52 +0000)]
Enable machine sinking critical edge splitting. e.g.
define double @foo(double %x, double %y, i1 %c) nounwind {
%a = fdiv double %x, 3.2
%z = select i1 %c, double %a, double %y
ret double %z
}
Was:
_foo:
divsd LCPI0_0(%rip), %xmm0
testb $1, %dil
jne LBB0_2
movaps %xmm1, %xmm0
LBB0_2:
ret
Now:
_foo:
testb $1, %dil
je LBB0_2
divsd LCPI0_0(%rip), %xmm0
ret
LBB0_2:
movaps %xmm1, %xmm0
ret
This avoids the divsd when early exit is taken.
rdar://
8454886
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114372
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 20 Sep 2010 22:32:25 +0000 (22:32 +0000)]
Relax this check to silently swallow FE_INEXACT, following directions
from rdar://
8452472. This unbreaks gcc.dg/builtins-17.c.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114368
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 20 Sep 2010 20:56:29 +0000 (20:56 +0000)]
CombinerAA is now reordering these stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114354
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Mon, 20 Sep 2010 20:39:59 +0000 (20:39 +0000)]
When TCO is turned on, it is possible to end up with aliasing FrameIndex's. Therefore,
CombinerAA cannot assume that different FrameIndex's never alias, but can instead use
MachineFrameInfo to get the actual offsets of these slots and check for actual aliasing.
This fixes CodeGen/X86/2010-02-19-TailCallRetAddrBug.ll and CodeGen/X86/tailcallstack64.ll
when CombinerAA is enabled, modulo a different register allocation sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114348
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 20 Sep 2010 19:32:20 +0000 (19:32 +0000)]
Simplify ARM callee-saved register handling by removing the distinction
between the high and low registers for prologue/epilogue code. This was
a Darwin-only thing that wasn't providing a realistic benefit anymore.
Combining the save areas simplifies the compiler code and results in better
ARM/Thumb2 codegen.
For example, previously we would generate code like:
push {r4, r5, r6, r7, lr}
add r7, sp, #12
stmdb sp!, {r8, r10, r11}
With this change, we combine the register saves and generate:
push {r4, r5, r6, r7, r8, r10, r11, lr}
add r7, sp, #12
rdar://
8445635
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114340
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 20 Sep 2010 19:20:47 +0000 (19:20 +0000)]
Produce a R_X86_64_32 when the value is >=0.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114339
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 20 Sep 2010 19:12:55 +0000 (19:12 +0000)]
Avoid splitting critical edge twice for a set of PHI uses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114338
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Mon, 20 Sep 2010 04:03:07 +0000 (04:03 +0000)]
Fix the "unable to rename temporary" lit test failing on Windows. rename is now copy + delete on Windows. Problem to be revisited for a permanent and clean solution.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114320
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 20 Sep 2010 03:58:32 +0000 (03:58 +0000)]
fix a bug I introduced back in the hayday of version #2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114319
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sun, 19 Sep 2010 21:58:55 +0000 (21:58 +0000)]
test/CodeGen/X86: Add explicit triplet -mtriple=i686-linux to 3 tests incompatible to Win32 codegen.
r114297 raises 3 failures. They might fail also on mingw.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114317
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 19 Sep 2010 21:01:26 +0000 (21:01 +0000)]
Revert r114312 while I sort out some issues.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114313
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 19 Sep 2010 19:51:55 +0000 (19:51 +0000)]
Tentatively enabled DAGCombiner Alias Analysis by default. As far as I know,
r114268 fixed the last of the blockers to enabling it. I will be monitoring
for failures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114312
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sun, 19 Sep 2010 17:54:28 +0000 (17:54 +0000)]
Add one more Core i7 model number.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114310
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Sun, 19 Sep 2010 03:44:22 +0000 (03:44 +0000)]
Using regexp-opt for keyword regex declarations makes the word lists more
readable and easier to edit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114308
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 19 Sep 2010 00:37:34 +0000 (00:37 +0000)]
idiom recognition should catch this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114304
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 19 Sep 2010 00:34:58 +0000 (00:34 +0000)]
add a readme.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114303
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 19 Sep 2010 00:31:58 +0000 (00:31 +0000)]
add corei7, the laptop version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114302
91177308-0d34-0410-b5e6-
96231b3b80d8
NAKAMURA Takumi [Sat, 18 Sep 2010 19:50:42 +0000 (19:50 +0000)]
X86Subtarget.h: Fix Cygwin's TD.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114297
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 18 Sep 2010 18:52:28 +0000 (18:52 +0000)]
Add the exit instruction to the PTX target.
Patch by Che-Liang Chiou <clchiou@gmail.com>!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114294
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 18 Sep 2010 18:50:27 +0000 (18:50 +0000)]
Handle the odd case where we only have one instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114293
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 18 Sep 2010 17:54:37 +0000 (17:54 +0000)]
Fix build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114292
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 18 Sep 2010 15:03:21 +0000 (15:03 +0000)]
Make sure the STT_FILE symbol is the first one in the symbol table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114285
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 18 Sep 2010 14:41:26 +0000 (14:41 +0000)]
Unbreak msvc build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114284
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sat, 18 Sep 2010 13:03:32 +0000 (13:03 +0000)]
restrict dyn_cast_or_null to pointer types, just like cast_or_null; re-commit of r114279, backed out in r114280
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114282
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sat, 18 Sep 2010 12:56:47 +0000 (12:56 +0000)]
back out r114279 as some darwin buildbots get errors compiling clang:
svn merge -c -114279 llvm/include/llvm/Support/Casting.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114280
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sat, 18 Sep 2010 12:30:15 +0000 (12:30 +0000)]
restrict dyn_cast_or_null to pointer types, just like cast_or_null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114279
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sat, 18 Sep 2010 11:55:34 +0000 (11:55 +0000)]
do not rely on the implicit-dereference semantics of dyn_cast_or_null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114278
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sat, 18 Sep 2010 11:53:39 +0000 (11:53 +0000)]
do not rely on the implicit-dereference semantics of dyn_cast_or_null
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114277
91177308-0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Sat, 18 Sep 2010 11:48:36 +0000 (11:48 +0000)]
remove CallSite::get; it is still present (as protected) in the baseclass, use one of the constructors intead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114275
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Sat, 18 Sep 2010 09:49:08 +0000 (09:49 +0000)]
Fixed non-const iterator error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114273
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Sat, 18 Sep 2010 09:07:10 +0000 (09:07 +0000)]
Added a separate class (PBQPBuilder) for PBQP Problem construction. This class can be extended to support custom constraints.
For now the allocator still uses the old (internal) construction mechanism by default. This will be phased out soon assuming
no issues with the builder system come up.
To invoke the new construction mechanism just pass '-regalloc=pbqp -pbqp-builder' to llc. To provide custom constraints a
Target just needs to extend PBQPBuilder and pass an instance of their derived builder to the RegAllocPBQP constructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114272
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 18 Sep 2010 08:32:32 +0000 (08:32 +0000)]
docs: Tweak wording.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114271
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 18 Sep 2010 06:42:17 +0000 (06:42 +0000)]
Fix code that break critical edges for PHI uses. Watch out for multiple PHIs in different blocks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114270
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sat, 18 Sep 2010 04:45:14 +0000 (04:45 +0000)]
Invert the logic of reachesChainWithoutSideEffects(). What we want to check is that there is
NO path to the destination containing side effects, not that SOME path contains no side effects.
In practice, this only manifests with CombinerAA enabled, because otherwise the chain has little
to no branching, so "any" is effectively equivalent to "all".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114268
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 18 Sep 2010 02:32:38 +0000 (02:32 +0000)]
Thumb opcodes for thumb calls.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114263
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 18 Sep 2010 02:28:15 +0000 (02:28 +0000)]
lit: Bump version to 0.2.0dev, for no apparent reason.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114262
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 18 Sep 2010 02:28:12 +0000 (02:28 +0000)]
lit: Tweak setup.py.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114261
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 18 Sep 2010 02:28:09 +0000 (02:28 +0000)]
lit: These TODOs are done(ish).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114260
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 18 Sep 2010 01:59:37 +0000 (01:59 +0000)]
Add addrmode5 fp load support. Swap float/thumb operand adding to handle
thumb with floating point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114256
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 18 Sep 2010 01:23:38 +0000 (01:23 +0000)]
Floating point stores have a 3rd addressing mode type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114254
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 18 Sep 2010 00:37:27 +0000 (00:37 +0000)]
Add test that was missing in my previous commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114248
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 18 Sep 2010 00:05:05 +0000 (00:05 +0000)]
factor out a simple helper function to create a label for PC-relative
instructions (PICADD, PICLDR, et.al.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114243
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Sat, 18 Sep 2010 00:04:53 +0000 (00:04 +0000)]
PC-relative pseudo instructions are lowered and printed directly. Any encounter
with one in the generic printing code is an error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114242
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Sat, 18 Sep 2010 00:04:37 +0000 (00:04 +0000)]
Attempt to XFAIL this test on arm-linux, which is inexplicably failing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114241
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 17 Sep 2010 23:48:07 +0000 (23:48 +0000)]
Fix vmov.f64 disassembly on targets where sizeof(long) != 8.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114240
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 23:41:53 +0000 (23:41 +0000)]
Add MC-inst handling for tPICADD
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114237
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 17 Sep 2010 22:59:05 +0000 (22:59 +0000)]
Add target-specific DAG combiner for BUILD_VECTOR and VMOVRRD. An i64
value should be in GPRs when it's going to be used as a scalar, and we use
VMOVRRD to make that happen, but if the value is converted back to a vector
we need to fold to a simple bit_convert. Radar
8407927.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114233
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 22:36:38 +0000 (22:36 +0000)]
Teach the (non-MC) instruction printer to use the cannonical names for push/pop,
and shift instructions on ARM. Update the tests to match.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114230
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 17 Sep 2010 22:34:41 +0000 (22:34 +0000)]
Avoid relocations in a common case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114229
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 17 Sep 2010 22:28:18 +0000 (22:28 +0000)]
Teach machine sink to
1) Do forward copy propagation. This makes it easier to estimate the cost of the
instruction being sunk.
2) Break critical edges on demand, including cases where the value is used by
PHI nodes.
Critical edge splitting is not yet enabled by default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114227
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 17 Sep 2010 22:28:18 +0000 (22:28 +0000)]
Rework arm fast isel branch and compare code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114226
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 17 Sep 2010 21:59:42 +0000 (21:59 +0000)]
Machine CSE was forgetting to clear some data structures.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114222
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 21:58:46 +0000 (21:58 +0000)]
Update tests to handle MC-inst instruction printing of shift operations. The
legacy asm printer uses instructions of the form, "mov r0, r0, lsl #3", while
the MC-instruction printer uses the form "lsl r0, r0, #3". The latter mnemonic
is correct and preferred according the ARM documentation (A8.6.98). The former
are pseudo-instructions for the latter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114221
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 17 Sep 2010 21:56:26 +0000 (21:56 +0000)]
Fix a potential bug that can cause miscomparison with and without debug info.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114220
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 17 Sep 2010 21:47:03 +0000 (21:47 +0000)]
Don't include <fenv.h> now that we have llvm/System/FEnv.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114219
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 21:46:16 +0000 (21:46 +0000)]
FileCheck-ize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114218
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 21:33:25 +0000 (21:33 +0000)]
Hook up verbose asm comment printing for SOImm operands in MC printer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114215
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 21:25:10 +0000 (21:25 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114212
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 21:23:56 +0000 (21:23 +0000)]
trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114211
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 20:34:09 +0000 (20:34 +0000)]
Move thumb2 tests to the thumb2 directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114206
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Fri, 17 Sep 2010 20:30:48 +0000 (20:30 +0000)]
cmake: test for the presence of fenv.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114205
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 20:27:26 +0000 (20:27 +0000)]
tweak test to check instructions rather than relying on the comment string
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114204
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 17 Sep 2010 20:25:43 +0000 (20:25 +0000)]
Fix this test to avoid an "inexact" fold.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114202
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 17 Sep 2010 20:24:24 +0000 (20:24 +0000)]
Avoid emitting a PIC base register if no PIC addresses are needed.
This fixes rdar://
8396318.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114201
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 20:21:03 +0000 (20:21 +0000)]
tweak test to check instructions rather than relying on the comment string
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114200
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 20:17:41 +0000 (20:17 +0000)]
tweak test to check instructions rather than relying on the comment string
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114199
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 17 Sep 2010 20:15:53 +0000 (20:15 +0000)]
Fix this test so that folding doesn't depend on a potentially
"inexact" result.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114198
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 17 Sep 2010 20:08:35 +0000 (20:08 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114197
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Fri, 17 Sep 2010 20:06:27 +0000 (20:06 +0000)]
Attempt to support platforms which don't have fenv.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114196
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 18:46:17 +0000 (18:46 +0000)]
Add skeleton infrastructure for the ARMMCCodeEmitter class. Patch by Jason Kim!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114195
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 17 Sep 2010 18:25:25 +0000 (18:25 +0000)]
handle the upper16/lower16 target operand flags on symbol references for MC
instruction lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114191
91177308-0d34-0410-b5e6-
96231b3b80d8