Rafael Espindola [Thu, 23 Sep 2010 17:25:18 +0000 (17:25 +0000)]
Represent relocations against local symbols as relocations against the section
they are in. Both ways should be equivalent, but gas produces relocations
against the section.
Roman wrote the patch, I added the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114667
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Thu, 23 Sep 2010 17:25:06 +0000 (17:25 +0000)]
Fix llvm-extract so that it changes the linkage of all GlobalValues to
"external" even when doing lazy bitcode loading. This was broken because
a function that is not materialized fails the !isDeclaration() test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114666
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 23 Sep 2010 16:59:44 +0000 (16:59 +0000)]
Avoid warnings about conversions to `bool' in MS compilers.
Patch by Nathan Jeffords!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114662
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 23 Sep 2010 16:59:36 +0000 (16:59 +0000)]
Fix VS 2010 build.
Patch by Nathan Jeffords!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114661
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Thu, 23 Sep 2010 16:49:17 +0000 (16:49 +0000)]
Revert r114596, it's breaking a few tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114659
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 23 Sep 2010 14:19:21 +0000 (14:19 +0000)]
Bump LLVM in CMake makefiles to 2.9
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114640
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 23 Sep 2010 14:14:56 +0000 (14:14 +0000)]
Fix the FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114639
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Sep 2010 07:18:35 +0000 (07:18 +0000)]
Follow up to r114630. Do not optimize away unconditional branch following a conditional one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114634
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Sep 2010 06:55:34 +0000 (06:55 +0000)]
Disable codegen prepare critical edge splitting. Machine instruction passes now
break critical edges on demand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114633
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Sep 2010 06:54:40 +0000 (06:54 +0000)]
If there are multiple unconditional branches terminating a block, eliminate all
but the first one. Those will never be executed. There was logic to do this
but it was faulty.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114632
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Sep 2010 06:53:00 +0000 (06:53 +0000)]
Don't sink insert_subreg, subreg_to_reg, reg_sequence. They are meant to be
close to their sources to facilitate coalescing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114631
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 23 Sep 2010 06:51:55 +0000 (06:51 +0000)]
SDISel should not optimize a unconditional branch following a conditional branch
when the unconditional branch destination is the fallthrough block. The
canonicalization makes it easier to allow optimizations on DAGs to invert
conditional branches. The branch folding pass (and AnalyzeBranch) will clean up
the unnecessary unconditional branches later.
This is one of the patches leading up to disabling codegen prepare critical edge
splitting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114630
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Thu, 23 Sep 2010 04:28:54 +0000 (04:28 +0000)]
Moved the PBQP allocator class out of the header and back in to the cpp file to hide the gory details.
Allocator instances can now be created by calling createPBQPRegisterAllocator.
Tidied up use of CoalescerPair as per Jakob's suggestions.
Made the new PBQPBuilder based construction process the default. The internal construction process
remains in-place and available via -pbqp-builder=false for now. It will be removed shortly if the new
process doesn't cause any regressions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114626
91177308-0d34-0410-b5e6-
96231b3b80d8
Sean Callanan [Thu, 23 Sep 2010 02:14:12 +0000 (02:14 +0000)]
Fixed a crash in the enhanced disassembler where
because of the lack of a newline, AsmToken::Eof
was being found instead of AsmToken::EndOfStatement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114621
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 23 Sep 2010 00:33:13 +0000 (00:33 +0000)]
Fix llvm-extract -delete's lazy loading to materialize the functions that
will not be deleted, rather than the ones that will.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114614
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 23:27:36 +0000 (23:27 +0000)]
Add support for ELF PLT references for ARM MC asm printing. Adding a
new VariantKind to the MCSymbolExpr seems like overkill, but I'm not sure
there's a more straightforward way to get the printing difference captured.
(i.e., x86 uses @PLT, ARM uses (PLT)).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114613
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 22 Sep 2010 23:20:04 +0000 (23:20 +0000)]
Make SetVector's remove indicate whether it actually removed something.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114612
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 23:01:28 +0000 (23:01 +0000)]
Enable a few additional asserts in MC instruction lowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114601
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Wed, 22 Sep 2010 22:58:22 +0000 (22:58 +0000)]
A select between a constant and zero, when fed by a bit test, can be efficiently
lowered using a series of shifts.
Fixes <rdar://problem/
8285015>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114599
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Esfahani [Wed, 22 Sep 2010 22:35:21 +0000 (22:35 +0000)]
Fix PR8201: Update the code to call via X86::CALL64pcrel32 in the 64-bit case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114597
91177308-0d34-0410-b5e6-
96231b3b80d8
Nate Begeman [Wed, 22 Sep 2010 22:28:42 +0000 (22:28 +0000)]
<rdar://problem/
8228022> Wvector-conversions warnings in arm_neon.h
Explicitly cast arguments to the type the builtin expects, which is <vN x i8>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114596
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 22 Sep 2010 22:27:30 +0000 (22:27 +0000)]
Change VDUPLANE DAG combiner to just return the result instead of calling
CombineTo to avoid putting the result on the worklist. I don't think it makes
much difference for now, but it might help someday as we add more DAG
combine optimizations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114595
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 22 Sep 2010 22:27:05 +0000 (22:27 +0000)]
Avoid some Mach-O specific alignment being done on ELF.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114594
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 22:19:53 +0000 (22:19 +0000)]
allow target-specific label suffixes, patch by Yuri Gribov!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114592
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 22 Sep 2010 22:18:07 +0000 (22:18 +0000)]
Fix uninitialized TBAAFlag field values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114591
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 22 Sep 2010 22:09:21 +0000 (22:09 +0000)]
Combine both VMOVDRR(VMOVRRD) and VMOVRRD(VMOVDRR), instead of just doing one
of those. Refactor to share code for handling BUILD_VECTOR(VMOVRRD).
I don't have a testcase that exercises this, but it seems like an obvious
good thing to do.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114589
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 22 Sep 2010 21:41:02 +0000 (21:41 +0000)]
Teach memdep about TBAA tags.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114588
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Wed, 22 Sep 2010 21:10:38 +0000 (21:10 +0000)]
Use DW_OP_fbreg when offset is based on frame register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114585
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 20:55:15 +0000 (20:55 +0000)]
add FIXME
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114578
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Wed, 22 Sep 2010 20:42:08 +0000 (20:42 +0000)]
Temporarily work around new address lowering while I figure out what
needs to happen for darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114577
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 20:32:34 +0000 (20:32 +0000)]
Remove a few commented out bits
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114576
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Wed, 22 Sep 2010 20:11:43 +0000 (20:11 +0000)]
Constify.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114574
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 22 Sep 2010 19:04:41 +0000 (19:04 +0000)]
Fix typo and add a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114570
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 22 Sep 2010 18:44:56 +0000 (18:44 +0000)]
When moving zext/sext to be folded with a load, ignore the issue of whether
truncates are free only in the case where the extended type is legal but the
load type is not. If both types are illegal, such as when they are too big,
the load may not be legalized into an extended load.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114568
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 18:37:14 +0000 (18:37 +0000)]
Add PrintSpecial() handling for in ARM MC instruction printer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114563
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 18:18:30 +0000 (18:18 +0000)]
grammar tweakage
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114561
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 18:16:55 +0000 (18:16 +0000)]
remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114560
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 22 Sep 2010 17:46:10 +0000 (17:46 +0000)]
CrashRecovery/Darwin: Override raise() as well so that crash recovery doesn't
end up altering the thread on which crashes are done because of its use of
Darwin's broken raise() implementation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114558
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Wed, 22 Sep 2010 17:43:04 +0000 (17:43 +0000)]
Correctly align bss.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114556
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 17:39:48 +0000 (17:39 +0000)]
Add MC instruction printer support for ARM and Thumb1 jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114555
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Wed, 22 Sep 2010 17:35:14 +0000 (17:35 +0000)]
Attempt to fix llvm-gcc build. It was crashing when building gcov.o for an
ARM cross-compiler on x86, because the MMO size did not match the type size.
This fixes the MMO size and also the size of the stack object to match the
type size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114554
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 17:15:35 +0000 (17:15 +0000)]
Add MC instruction printer support for TB[BH] style thumb2 jump tables.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114553
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 22 Sep 2010 16:45:13 +0000 (16:45 +0000)]
Clean up comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114550
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 22 Sep 2010 09:00:41 +0000 (09:00 +0000)]
llvmc: Support '-emit-llvm -S' with -opt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114541
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Wed, 22 Sep 2010 09:00:35 +0000 (09:00 +0000)]
A more informative output suffix for the opt tool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114540
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 06:26:39 +0000 (06:26 +0000)]
fix rdar://
8456371 - Handle commutable instructions written backward.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114536
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 05:49:14 +0000 (05:49 +0000)]
Fix an inconsistency in the x86 backend that led it to reject "calll foo" on
x86-32: 32-bit calls were named "call" not "calll". 64-bit calls were correctly
named "callq", so this only impacted x86-32.
This fixes rdar://
8456370 - llvm-mc rejects 'calll'
This also exposes that mingw/64 is generating a 32-bit call instead of a 64-bit call,
I will file a bugzilla.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114534
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 05:29:50 +0000 (05:29 +0000)]
fix rdar://
8456412 - llvm-mc crash in encoder on "mov %rdx, %cr8"
Teaching the code generator about CR8-15, how to rex them up, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114533
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 05:05:16 +0000 (05:05 +0000)]
fix rdar://
8456417 - llvm-mc can't do basic math
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114532
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 04:56:20 +0000 (04:56 +0000)]
add the missing aliases for fp stack cmovs, rdar://
8456391
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114531
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 04:39:11 +0000 (04:39 +0000)]
reimplement elf TLS support in terms of addressing modes, eliminating SegmentBaseAddress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114529
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 04:11:10 +0000 (04:11 +0000)]
Fix rdar://
8456364 - llvm-mc rejects '%CS'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114528
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 04:04:03 +0000 (04:04 +0000)]
fix rdar://
8456389 - llvm-mc mismatch with 'as' on 'fstp'
-This line, and those below, will be ignored--
M test/MC/AsmParser/X86/x86_instructions.s
M lib/Target/X86/AsmParser/X86AsmParser.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114527
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 03:50:32 +0000 (03:50 +0000)]
fix rdar://
8456361 - llvm-mc rejects 'rep movsd'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114526
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 01:28:21 +0000 (01:28 +0000)]
convert the last 4 X86ISD nodes that should have memoperands to have them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114523
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 01:11:26 +0000 (01:11 +0000)]
give X86ISD::FNSTCW16m a memoperand, since it touches memory. It only
can access the stack due to how it is generated though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114522
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 01:05:16 +0000 (01:05 +0000)]
give FP_TO_INT16_IN_MEM and friends a memoperand. They are only
used with stack slots, but hey, lets be safe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114521
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 00:46:26 +0000 (00:46 +0000)]
linux has a different stack alignment than the mac, relax this a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114519
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 00:34:38 +0000 (00:34 +0000)]
give VZEXT_LOAD a memory operand, it now works with segment registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114515
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 22 Sep 2010 00:11:31 +0000 (00:11 +0000)]
revert r114386 now that address modes work correctly, we get a nice
call through gs-relative memory now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114510
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 23:59:42 +0000 (23:59 +0000)]
give LCMPXCHG_DAG[8] a memory operand, allowing it to work with addrspace 256/257
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114508
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 23:57:27 +0000 (23:57 +0000)]
filecheckize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114507
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 21 Sep 2010 23:49:07 +0000 (23:49 +0000)]
OptimizeCompareInstr should avoid iterating pass the beginning of the MBB when the 'and' instruction is after the comparison.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114506
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 21 Sep 2010 23:28:16 +0000 (23:28 +0000)]
Add start of support for MC instruction printer of ARM jump tables. Filling in
the rest of it is next up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114500
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 21 Sep 2010 22:51:46 +0000 (22:51 +0000)]
Enable target-specific mul-lowering on ARM, even at -Os. Remove a test that this makes
irrelevant, but add a new test for the new, improved functionality.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114494
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 21 Sep 2010 22:32:21 +0000 (22:32 +0000)]
Build the complement interval dupli after the split intervals instead of
creating it before and subtracting split ranges.
This way, the SSA update code in LiveIntervalMap can properly create and use new
phi values in dupli. Now it is possible to create split regions where a value
escapes along two different CFG edges, creating phi values outside the split
region.
This is a work in progress and probably quite broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114492
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 22:07:31 +0000 (22:07 +0000)]
reimplement support for GS and FS relative address space matching
by having X86DAGToDAGISel::SelectAddr get passed in the parent node
of the operand match (the load/store/atomic op) and having it get
the address space from that, instead of having special FS/GS addr
mode operations that require duplicating the entire instruction set
to support.
This makes FS and GS relative accesses *far* more predictable and
work much better. It also simplifies the X86 backend a bit, more
to come.
There is still a pending issue with nodes like ISD::PREFETCH and
X86ISD::FLD, which really should be MemSDNode's but aren't.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114491
91177308-0d34-0410-b5e6-
96231b3b80d8
John Thompson [Tue, 21 Sep 2010 22:04:54 +0000 (22:04 +0000)]
Fixed pr20314-2.c failure, added E, F, p constraint letters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114490
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 22:00:25 +0000 (22:00 +0000)]
Rework passing parent pointers into complexpatterns, I forgot
that complex patterns are matched after the entire pattern has
a structural match, therefore the NodeStack isn't in a useful
state when the actual call to the matcher happens.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114489
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 21 Sep 2010 21:54:27 +0000 (21:54 +0000)]
Move a sign-extend or a zero-extend of a load to the same basic block as the
load when the type of the load is not legal, even if truncates are not free.
The load is going to be legalized to an extending load anyway.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114488
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 21 Sep 2010 21:44:14 +0000 (21:44 +0000)]
Clarify a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114487
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 21 Sep 2010 21:20:13 +0000 (21:20 +0000)]
Add some utility routines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114483
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 21 Sep 2010 21:10:42 +0000 (21:10 +0000)]
Add insertAfter. This should have accompanied previous check-in.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114481
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 21 Sep 2010 20:56:33 +0000 (20:56 +0000)]
If only user of a vreg is an copy instruction to export copy of vreg out of current basic block then insert DBG_VALUE so that debug value of the variable is also transfered to new vreg.
Testcase is in r114476.
This fixes radar
8412415.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114478
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 21 Sep 2010 20:50:32 +0000 (20:50 +0000)]
Use FileCheck
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114475
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 20:46:40 +0000 (20:46 +0000)]
correct this logic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114474
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 21 Sep 2010 20:42:50 +0000 (20:42 +0000)]
Reimplement r114460 in target-independent DAGCombine rather than target-dependent, by using
the predicate to discover the number of sign bits. Enhance X86's target lowering to provide
a useful response to this query.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114473
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 20:37:12 +0000 (20:37 +0000)]
just like they can opt into getting the root of the pattern being
matched, allow ComplexPatterns to opt into getting the parent node
of the operand being matched.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114472
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 20:31:19 +0000 (20:31 +0000)]
fix a long standing wart: all the ComplexPattern's were being
passed the root of the match, even though only a few patterns
actually needed this (one in X86, several in ARM [which should
be refactored anyway], and some in CellSPU that I don't feel
like detangling). Instead of requiring all ComplexPatterns to
take the dead root, have targets opt into getting the root by
putting SDNPWantRoot on the ComplexPattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114471
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 21 Sep 2010 20:16:12 +0000 (20:16 +0000)]
Refix MSVC9 and upper_bound. It actually needs a fully symmetric comparator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114469
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 19:41:58 +0000 (19:41 +0000)]
even though I'm about to rip it out, simplify the address mode stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114468
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 18:58:22 +0000 (18:58 +0000)]
finish pushing MachinePointerInfo through selectiondags. At this point,
I think I've audited all uses, so it should be dependable for address spaces,
and the pointer+offset info should also be accurate when there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114464
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 18:51:21 +0000 (18:51 +0000)]
convert a couple more places to use the new getStore()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114463
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 18:41:36 +0000 (18:41 +0000)]
update a bunch of code to use the MachinePointerInfo version of getStore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114461
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 21 Sep 2010 18:41:19 +0000 (18:41 +0000)]
When adding the carry bit to another value on X86, exploit the fact that the carry-materialization
(sbbl x, x) sets the registers to 0 or ~0. Combined with two's complement arithmetic, we can fold
the intermediate AND and the ADD into a single SUB.
This fixes <rdar://problem/
8449754>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114460
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 21 Sep 2010 18:34:17 +0000 (18:34 +0000)]
Don't pollute the global namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114459
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 21 Sep 2010 18:24:30 +0000 (18:24 +0000)]
MSVC9 does not support upper_bound with an asymmetric comparator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114455
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 21 Sep 2010 17:56:22 +0000 (17:56 +0000)]
Define the TargetLowering::getTgtMemIntrinsic hook for ARM so that NEON load
and store intrinsics are represented with MemIntrinsicSDNodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114454
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 17:50:43 +0000 (17:50 +0000)]
eliminate some uses of the getStore overload.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114453
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 17:42:31 +0000 (17:42 +0000)]
eliminate an old SelectionDAG::getTruncStore method, propagating
MachinePointerInfo around more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114452
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 17:28:52 +0000 (17:28 +0000)]
eliminate last SelectionDAG::getLoad old entrypoint, on to stores.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114450
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 17:24:05 +0000 (17:24 +0000)]
fix the code that infers SV info to be correct when dealing
with an indexed load/store that has an offset in the index.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114449
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 21 Sep 2010 17:12:18 +0000 (17:12 +0000)]
Add LiveInterval::find and use it for most LiveRange searching operations
instead of calling lower_bound or upper_bound directly.
This cleans up the search logic a bit because {lower,upper}_bound compare
LR->start by default, and it is usually simpler to search LR->end.
Funnelling all searches through one function also makes it possible to replace
the search algorithm with something faster than binary search.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114448
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 21 Sep 2010 17:12:15 +0000 (17:12 +0000)]
Remove dead method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114447
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 17:04:51 +0000 (17:04 +0000)]
propagate MachinePointerInfo through various uses of the old
SelectionDAG::getExtLoad overload, and eliminate it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114446
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Tue, 21 Sep 2010 16:45:31 +0000 (16:45 +0000)]
Fix errant printing of [v]ldm instructions that aren't a pop
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114445
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 21 Sep 2010 16:41:29 +0000 (16:41 +0000)]
Simplify code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114444
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 16:36:31 +0000 (16:36 +0000)]
continue MachinePointerInfo'izing, eliminating use of one of the old
getLoad overloads.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114443
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 21 Sep 2010 16:08:50 +0000 (16:08 +0000)]
convert dagcombine off the old form of getLoad. This fixes several bugs
with SVOffset computation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114442
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Tue, 21 Sep 2010 16:00:03 +0000 (16:00 +0000)]
Make CreateComplexVariable independent of SmallVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114439
91177308-0d34-0410-b5e6-
96231b3b80d8