Dan Gohman [Mon, 18 Oct 2010 18:45:59 +0000 (18:45 +0000)]
Run tbaa before basicaa, since that's how it's expected to be used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116731
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 18 Oct 2010 18:45:11 +0000 (18:45 +0000)]
Fix BasicAA to pass TBAAInfo through to the chained analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116730
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 18 Oct 2010 18:39:46 +0000 (18:39 +0000)]
For Thumb2, try to use frame pointer references for stack slots even when a
base register is available. rdar://
8525298
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116729
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 18 Oct 2010 18:36:12 +0000 (18:36 +0000)]
Produce ELF::R_386_GOTPC relocations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116728
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 18 Oct 2010 18:17:47 +0000 (18:17 +0000)]
Make TypeBasedAliasAnalysis default to doing nothing, with a command-line
option to enable it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116722
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 18 Oct 2010 18:10:31 +0000 (18:10 +0000)]
Use chaining in TypeBasedAliasAnalysis::pointsToConstantMemory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116721
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 18 Oct 2010 18:04:47 +0000 (18:04 +0000)]
Make BasicAliasAnalysis a normal AliasAnalysis implementation which
does normal initialization and normal chaining. Change the default
AliasAnalysis implementation to NoAlias.
Update StandardCompileOpts.h and friends to explicitly request
BasicAliasAnalysis.
Update tests to explicitly request -basicaa.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116720
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 18 Oct 2010 18:03:28 +0000 (18:03 +0000)]
Make the bots happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116719
91177308-0d34-0410-b5e6-
96231b3b80d8
Kevin Enderby [Mon, 18 Oct 2010 17:04:36 +0000 (17:04 +0000)]
Added a handful of x86-32 instructions that were missing so that llvm-mc would
be more complete. These are only expected to be used by llvm-mc with assembly
source so there is no pattern, [], in the .td files. Most are being added to
X86InstrInfo.td as Chris suggested and only comments about register uses are
added. Suggestions welcome on the .td changes as I'm not sure on every detail
of the x86 records. More missing instructions will be coming.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116716
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 18 Oct 2010 16:58:03 +0000 (16:58 +0000)]
Produce a R_386_PLT32 when needed. Moved the default cases of switches to the
start for consistency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116715
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 18 Oct 2010 16:48:59 +0000 (16:48 +0000)]
ARM addrmode4 instructions (ldm, stm and friends) can't encode an immediate
offset for stack references. Make sure we take that into account when
deciding whether to reserver an emergency spill slot for the register
scavenger. rdar://
8559625
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116714
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 18 Oct 2010 16:38:50 +0000 (16:38 +0000)]
Grammar tweak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116712
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 18 Oct 2010 16:38:04 +0000 (16:38 +0000)]
Handle GOTOFF correctly on i386.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116711
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Mon, 18 Oct 2010 16:29:26 +0000 (16:29 +0000)]
Trivial grammar tweak.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116710
91177308-0d34-0410-b5e6-
96231b3b80d8
Kalle Raiskila [Mon, 18 Oct 2010 09:34:19 +0000 (09:34 +0000)]
Improve lowering of sext to i128 on SPU.
The old algorithm inserted a 'rotqmbyi' instruction which was
both redundant and wrong - it made shufb select bytes from the
wrong end of the input quad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116701
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 18 Oct 2010 06:49:12 +0000 (06:49 +0000)]
Remove the check for invalid calling conventions. Testing shows that they're
working just fine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116698
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Mon, 18 Oct 2010 02:17:53 +0000 (02:17 +0000)]
Lift arg promotion from the X86 backend. This should be unified at some point.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116694
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sun, 17 Oct 2010 11:08:44 +0000 (11:08 +0000)]
Now that we handle all allocas via a non-SP reg offset remove all of the
special case handling for ARM::SP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116688
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 17 Oct 2010 07:39:34 +0000 (07:39 +0000)]
std::string cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116686
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sun, 17 Oct 2010 07:38:40 +0000 (07:38 +0000)]
Fix a typo and silence unused variable warnings in -Asserts build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116685
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sun, 17 Oct 2010 06:07:26 +0000 (06:07 +0000)]
Allow more load types to be materialized through the allocas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116683
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 17 Oct 2010 02:26:16 +0000 (02:26 +0000)]
Build with RTTI and exceptions disabled. Only in GCC for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116682
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sun, 17 Oct 2010 01:51:42 +0000 (01:51 +0000)]
Optimize GEP off of intermediate allocas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116681
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sun, 17 Oct 2010 01:42:53 +0000 (01:42 +0000)]
Fix comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116680
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sun, 17 Oct 2010 01:41:46 +0000 (01:41 +0000)]
Turn on AddOperator folding in GEP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116679
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sun, 17 Oct 2010 01:40:27 +0000 (01:40 +0000)]
Use the i12 immediate versions of the load instructions - they're handled
more in the post-passes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116678
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Sat, 16 Oct 2010 18:23:53 +0000 (18:23 +0000)]
Add a MCObjectFormat class so that code common to all targets that use a
single object format can be shared.
This also adds support for
mov zed+(bar-foo), %eax
on ELF and COFF targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116675
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 16 Oct 2010 15:43:02 +0000 (15:43 +0000)]
Hack around incompatible pointer warnings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116671
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 16 Oct 2010 11:28:23 +0000 (11:28 +0000)]
Eliminate some calls to Value::getNameStr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116670
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Sat, 16 Oct 2010 11:27:13 +0000 (11:27 +0000)]
Unbreak test on non-COFF targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116669
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 16 Oct 2010 08:25:57 +0000 (08:25 +0000)]
MC-COFF: Add support for default-null weak externals.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116666
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 16 Oct 2010 08:25:41 +0000 (08:25 +0000)]
X86-Windows: Emit an undefined global __fltused symbol when targeting Windows
if any floating point arguments are passed to an external function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116665
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Sat, 16 Oct 2010 08:25:21 +0000 (08:25 +0000)]
Whitespace!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116664
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Sat, 16 Oct 2010 04:56:42 +0000 (04:56 +0000)]
MC/AsmParser: Report .stabs directive as unsupported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116659
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sat, 16 Oct 2010 02:20:26 +0000 (02:20 +0000)]
More machine LICM work. It now tracks register pressure for path from preheader to current BB and use the information determine whether hoisting is worthwhile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116654
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Sat, 16 Oct 2010 01:10:35 +0000 (01:10 +0000)]
Fix some funky formatting that got through.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116653
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 15 Oct 2010 23:35:12 +0000 (23:35 +0000)]
ARMCodeEmitter::emitMiscInstruction is dead. Long live
ARMCodeEmitter::emitMiscInstruction!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116644
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 15 Oct 2010 23:07:10 +0000 (23:07 +0000)]
Make sure offset is 0 for load/store register to the stack call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116640
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Fri, 15 Oct 2010 22:52:12 +0000 (22:52 +0000)]
Generalize MemCpyOpt's handling of call slot forwarding to function properly when the call slot
forwarding is implemented with a load/store pair rather than a memcpy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116637
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 15 Oct 2010 22:49:28 +0000 (22:49 +0000)]
Formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116635
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 15 Oct 2010 22:46:15 +0000 (22:46 +0000)]
lto: Respect LLVM_VERSION_INFO make variable, since setting CC arguments with
spaces gives tests fits and shell escaping is an art best left to jabberwockies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116632
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 15 Oct 2010 22:32:37 +0000 (22:32 +0000)]
Fix else if -> if in store machinery.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116628
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Fri, 15 Oct 2010 21:50:45 +0000 (21:50 +0000)]
Reformatting. No functionalogicality changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116625
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 15 Oct 2010 21:32:12 +0000 (21:32 +0000)]
Refactor ARM fast-isel reg + offset to be a base + offset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116622
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Oct 2010 19:49:46 +0000 (19:49 +0000)]
Encoding information for the various ARM saturating add/sub instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116612
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Fri, 15 Oct 2010 19:30:49 +0000 (19:30 +0000)]
llvmc: Add a test for the -c flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116611
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Oct 2010 18:42:41 +0000 (18:42 +0000)]
ARM binary encoding information for RSB and RSC instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116604
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Oct 2010 18:34:47 +0000 (18:34 +0000)]
Don't mark argument value stores as immutable, as otherwise the post-RA
scheduler may reorder loads from them before the stores and other such
badness. PR8347. Patch by David Meyer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116602
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 15 Oct 2010 18:25:59 +0000 (18:25 +0000)]
Use simple RegState::Define flag instead of getDefRegState(true).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116601
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Oct 2010 18:25:33 +0000 (18:25 +0000)]
Refactor alias handling to AliasedSymbol.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116600
91177308-0d34-0410-b5e6-
96231b3b80d8
Michael J. Spencer [Fri, 15 Oct 2010 18:13:02 +0000 (18:13 +0000)]
KillTheDoctor: Fix 2008 build. I'm actually surprised 2010 defines all of these, many are non-standard posix/unix extensions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116597
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Fri, 15 Oct 2010 18:02:07 +0000 (18:02 +0000)]
Expand GEP handling for constant offsets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116594
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 15 Oct 2010 17:47:12 +0000 (17:47 +0000)]
Teach FileCheck to handle trailing CHECK-NOT patterns.
A CHECK-NOT pattern without a following CHECK pattern simply checks that the
pattern doesn't match before the end of the input file.
You can even have only CHECK-NOT patterns to check that strings appear nowhere
in the input file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116592
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Oct 2010 17:35:17 +0000 (17:35 +0000)]
When expanding the MOVsr[la]_flag pseudos, the CPSR implicit def becomes
an explicit def. Make sure to capture that properly. rdar://
8556556
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116591
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Oct 2010 17:15:16 +0000 (17:15 +0000)]
ARM mode encoding information for UBFX and SBFX instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116588
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 15 Oct 2010 16:06:42 +0000 (16:06 +0000)]
FileCheckize
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116581
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 15 Oct 2010 16:06:40 +0000 (16:06 +0000)]
Remove unused accessor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116580
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Oct 2010 15:39:06 +0000 (15:39 +0000)]
Refactor code a bit and avoid creating unnecessary entries in the string
map.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116579
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 15 Oct 2010 04:34:40 +0000 (04:34 +0000)]
Remove unused ARMISD::AND selection DAG node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116566
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Fri, 15 Oct 2010 03:23:44 +0000 (03:23 +0000)]
ARM instructions that are both predicated and set the condition codes
have been printed with the "S" modifier after the predicate. With ARM's
unified syntax, they are supposed to go in the other order. We fixed this
for Thumb when we switched to unified syntax but missed changing it for
ARM. Apparently we don't generate these instructions often because no one
noticed until now. Thanks to Bill Wendling for the testcase!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116563
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Oct 2010 02:29:58 +0000 (02:29 +0000)]
Encoding info for extension instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116560
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Fri, 15 Oct 2010 01:44:59 +0000 (01:44 +0000)]
Grammar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116557
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Fri, 15 Oct 2010 00:58:12 +0000 (00:58 +0000)]
Don't pass --export-dynamic if TOOL_NO_EXPORTS is set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116550
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 15 Oct 2010 00:34:01 +0000 (00:34 +0000)]
Eliminate curli from SplitEditor. Use the LiveRangeEdit reference instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116547
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Fri, 15 Oct 2010 00:16:55 +0000 (00:16 +0000)]
Move stack slot assignments into LiveRangeEdit.
All registers created during splitting or spilling are assigned to the same
stack slot as the parent register.
When splitting or rematting, we may not spill at all. In that case the stack
slot is still assigned, but it will be dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116546
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 14 Oct 2010 23:49:52 +0000 (23:49 +0000)]
Create a new LiveRangeEdit class to keep track of the new registers created when
splitting or spillling, and to help with rematerialization.
Use LiveRangeEdit in InlineSpiller and SplitKit. This will eventually make it
possible to share remat code between InlineSpiller and SplitKit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116543
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 23:32:44 +0000 (23:32 +0000)]
Simplify test file a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116540
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 23:29:18 +0000 (23:29 +0000)]
Add testcase for RRX and ASRS (which effectively tests MOVs, since those
are just forms of that instruction).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116538
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 23:28:31 +0000 (23:28 +0000)]
Add missing Rd encoding for MOVs instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116537
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 22:57:13 +0000 (22:57 +0000)]
Refactor the MOVsr[al]_flag and RRX pseudo-instructions to really be pseudos
and let the ARMExpandPseudoInsts pass fix them up into the real (MOVs)
instruction form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116534
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 14 Oct 2010 22:55:57 +0000 (22:55 +0000)]
Tolerate a null parent pointer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116533
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 14 Oct 2010 21:11:51 +0000 (21:11 +0000)]
Added basic support for CPack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116516
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 20:43:44 +0000 (20:43 +0000)]
Tweak the ARM backend to use the RRX mnemonic instead of the 'mov a, b, rrx'
pseudonym.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116512
91177308-0d34-0410-b5e6-
96231b3b80d8
Francois Pichet [Thu, 14 Oct 2010 20:30:58 +0000 (20:30 +0000)]
Always use binary mode for output stream. This is important to prevent unwanted end of line conversion on Windows. Should not affect Unix where O_BINARY is not defined. This fix /clang/test/lexer/preamble.c XFAIL on WIN32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116509
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 18:54:27 +0000 (18:54 +0000)]
MOVi16 and MOVT ARM mode encodings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116498
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Thu, 14 Oct 2010 18:26:45 +0000 (18:26 +0000)]
Only split around a loop if the live range has uses outside the loop periphery.
Before we would also split around a loop if any peripheral block had multiple
uses. This could cause repeated splitting when splitting a different live range
would insert uses into the periphery.
Now -spiller=inline passes the nightly test suite again.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116494
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 14 Oct 2010 17:59:03 +0000 (17:59 +0000)]
Try again at implementing thread-safe lazy pass initialization, without depending on static local initialization
being threadsafe AND ensuring that initialization is complete by the time the initializeFooPass method returns.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116492
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 14 Oct 2010 17:36:50 +0000 (17:36 +0000)]
Revert r116489. It included some changes I didn't intend to commit, and broke the buildbots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116491
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 14 Oct 2010 17:26:06 +0000 (17:26 +0000)]
Apparently MSVC doesn't support thread-safe static local initialization. Roll our own solution instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116489
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 17:24:28 +0000 (17:24 +0000)]
Simplify encoding information and add 'dst' operand info for TAILJMP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116488
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Thu, 14 Oct 2010 16:34:44 +0000 (16:34 +0000)]
Remove some code duplication.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116484
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 14 Oct 2010 15:54:46 +0000 (15:54 +0000)]
Remove explicit dependency of LLVMARMCodeGen on LLVMARMAsmPrinter. It
creates a cyclic dependency that breaks the build when
BUILD_SHARED_LIBS=ON
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116480
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Thu, 14 Oct 2010 15:54:41 +0000 (15:54 +0000)]
When building shared libraries, link to required system libraries.
PR 8375
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116479
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 14 Oct 2010 13:43:20 +0000 (13:43 +0000)]
Comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116476
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 14 Oct 2010 11:22:06 +0000 (11:22 +0000)]
Forward -march correctly.
Also includes some cosmetic changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116475
91177308-0d34-0410-b5e6-
96231b3b80d8
Eric Christopher [Thu, 14 Oct 2010 09:29:41 +0000 (09:29 +0000)]
Handle more complex GEP based loads and add a few TODOs to deal with
GEP + alloca.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116474
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 14 Oct 2010 02:33:26 +0000 (02:33 +0000)]
Add support for vmov.f64/.f32 encoding. There's a bit of a hack going on
here. The f32 in FCONSTS is handled as a double instead of a float in the
code. So the encoding of the immediate into the instruction isn't exactly in
line with the documentation in that regard. But given that we know it's handled
as a double, it doesn't cause any harm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116471
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 14 Oct 2010 01:19:34 +0000 (01:19 +0000)]
Add encoding for 'fmstat'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116466
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 14 Oct 2010 01:16:09 +0000 (01:16 +0000)]
Register pressure and instruction latency aware machine LICM. Work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116465
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Thu, 14 Oct 2010 01:02:08 +0000 (01:02 +0000)]
- Add encodings for multiply add/subtract instructions in all their glory.
- Add missing patterns for some multiply add/subtract instructions.
- Add encodings for VMRS and VMSR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116464
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 14 Oct 2010 00:30:00 +0000 (00:30 +0000)]
fix a bug I introduced, no idea how this didn't repro right.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116462
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 14 Oct 2010 00:26:10 +0000 (00:26 +0000)]
hack to unbreak buildbots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116461
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 00:15:18 +0000 (00:15 +0000)]
Regenerate. No functional change, just cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116459
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 14 Oct 2010 00:12:49 +0000 (00:12 +0000)]
Teach PerfectShuffle to not generate files with embedded tab characters.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116458
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 14 Oct 2010 00:05:07 +0000 (00:05 +0000)]
add uadd_ov/usub_ov to apint, consolidate constant folding
logic to use the new APInt methods. Among other things this
implements rdar://
8501501 - llvm.smul.with.overflow.i32 should constant fold
which comes from "clang -ftrapv", originally brought to my attention from PR8221.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116457
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Oct 2010 23:57:00 +0000 (23:57 +0000)]
missed a line :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116456
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Oct 2010 23:54:10 +0000 (23:54 +0000)]
constify these methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116455
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 13 Oct 2010 23:47:11 +0000 (23:47 +0000)]
Detabify and clean up 80 column violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116454
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 13 Oct 2010 23:46:33 +0000 (23:46 +0000)]
add a few operations for signed operations that also
return an overflow flag.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116452
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Wed, 13 Oct 2010 23:34:31 +0000 (23:34 +0000)]
A few 80 column fixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116451
91177308-0d34-0410-b5e6-
96231b3b80d8