Jakob Stoklund Olesen [Tue, 4 Aug 2009 21:29:11 +0000 (21:29 +0000)]
Don't give implicit machine operands special treatment in the register scavenger.
Imp-def is *not* allowed to redefine a live register.
Imp-use is *not* allowed to use a dead register.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78106
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Tue, 4 Aug 2009 21:27:06 +0000 (21:27 +0000)]
Restlyize to match other targets, fixes cmake build to boot.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78105
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 Aug 2009 21:12:13 +0000 (21:12 +0000)]
Enable load / store multiple pass for Thumb2. It's not using ldrd / strd yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78104
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Aug 2009 21:12:08 +0000 (21:12 +0000)]
remove a random reference to subtarget. Even without this, we
still get "intel syntax" instructions from llc with
-x86-asm-syntax=intel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78103
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Tue, 4 Aug 2009 20:39:05 +0000 (20:39 +0000)]
Add NEON single-precision FP support for fabs and fneg.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78101
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 Aug 2009 20:36:45 +0000 (20:36 +0000)]
TableGen / AsmMatcher: Tweaks to avoid generating completely bogus match
functions.
- Fix variant flattening when the variant embeds an operand reference.
- Ignore instructions which reference an operand multiple times (e.g., "xorb
$dst, $dst"), and operands which have extra flags (e.g., "$dst:subreg32").
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78099
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 Aug 2009 20:32:25 +0000 (20:32 +0000)]
When exec() fails, return 127 instead of errno; the parent process has no way to
distinguish that the result is errno, so it can't use it to provide more
information about the error (it also exposes the numeric value of errno).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78098
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Tue, 4 Aug 2009 20:25:11 +0000 (20:25 +0000)]
Privatize the last bit of Constant-creation state.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78097
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Aug 2009 20:09:41 +0000 (20:09 +0000)]
rip out SectionEndDirectiveSuffix support, only uses by
the masm backend. If anyone cares about masm in the future,
we'll have semantic sections it can hang off of.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78096
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 4 Aug 2009 20:09:25 +0000 (20:09 +0000)]
Don't tamper with <undef> operands in MachineInstr::addRegisterKilled.
For an undef operand, MO.getReg() is meaningless and we should not use it.
Undef operands should be skipped entirely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78095
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 4 Aug 2009 20:01:11 +0000 (20:01 +0000)]
LowerSubregsInstructionPass::LowerExtract should not extend the live range of registers.
When LowerExtract eliminates an EXTRACT_SUBREG with a kill flag, it moves the
kill flag to the place where the sub-register is killed. This can accidentally
overlap with the use of a sibling sub-register, and we have trouble.
In the test case we have this code:
Live Ins: %R0 %R1 %R2
%R2L<def> = EXTRACT_SUBREG %R2<kill>, 1
%R2H<def> = LOAD16fi <fi#-1>, 0, Mem:LD(2,4) [FixedStack-1 + 0]
%R1L<def> = EXTRACT_SUBREG %R1<kill>, 1
%R0L<def> = EXTRACT_SUBREG %R0<kill>, 1
%R0H<def> = ADD16 %R2H<kill>, %R2L<kill>, %AZ<imp-def>, %AN<imp-def>, %AC0<imp-def>, %V<imp-def>, %VS<imp-def>
subreg: CONVERTING: %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1
subreg: eliminated!
subreg: killed here: %R0H<def> = ADD16 %R2H, %R2L, %R2<imp-use,kill>, %AZ<imp-def>, %AN<imp-def>, %AC0<imp-def>, %V<imp-def>, %VS<imp-def>
The kill flag on %R2 is moved to the last instruction, and the live range overlaps with the definition of %R2H:
*** Bad machine code: Redefining a live physical register ***
- function: f
- basic block: 0x18358c0 (#0)
- instruction: %R2H<def> = LOAD16fi <fi#-1>, 0, Mem:LD(2,4) [FixedStack-1 + 0]
Register R2H was defined but already live.
The fix is to replace EXTRACT_SUBREG with IMPLICIT_DEF instead of eliminating
it completely:
subreg: CONVERTING: %R2L<def> = EXTRACT_SUBREG %R2<kill>, 1
subreg: replace by: %R2L<def> = IMPLICIT_DEF %R2<kill>
Note that these IMPLICIT_DEF instructions survive to the asm output. It is
necessary to fix the stack-color-with-reg test case because of that.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78093
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 4 Aug 2009 19:18:01 +0000 (19:18 +0000)]
Enforce stricter rules in machine code verifier.
Implicit operands no longer get a free pass: Imp-use requires a live register
and imp-def requires a dead register.
There is also no special rule allowing redefinition of a sub-register when the
super-register is live. The super register must have imp-kill+imp-def operands
instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78090
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Tue, 4 Aug 2009 19:16:55 +0000 (19:16 +0000)]
Most flags are reserved registers on Blackfin.
The only exception is CC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78089
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 Aug 2009 18:46:17 +0000 (18:46 +0000)]
In thumb mode, r7 is used as frame register. This fixes pr4681.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78086
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Tue, 4 Aug 2009 18:44:29 +0000 (18:44 +0000)]
Match common pattern for FNMAC. Add NEON SP support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78085
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Tue, 4 Aug 2009 18:11:59 +0000 (18:11 +0000)]
Improve tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78083
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Tue, 4 Aug 2009 17:59:16 +0000 (17:59 +0000)]
Legalize i64 store operations generated by inst-combine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78082
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Tue, 4 Aug 2009 17:53:06 +0000 (17:53 +0000)]
Initial support for single-precision FP using NEON. Added "neonfp" attribute to enable. Added patterns for some binary FP operations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78081
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Tue, 4 Aug 2009 17:04:52 +0000 (17:04 +0000)]
Add some type traits that are used for Clang's statically-checked
canonical types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78076
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 Aug 2009 16:52:44 +0000 (16:52 +0000)]
Fix PR4528. This scavenger assertion is too strict. The two-address value is
killed by another operand.
There is probably a better fix. Either 1) scavenger can look at other operands, or
2) livevariables can be smarter about kill markers. Patches welcome.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78072
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 Aug 2009 16:46:12 +0000 (16:46 +0000)]
Avoid compiler warning (in -Asserts mode)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78070
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Aug 2009 16:27:13 +0000 (16:27 +0000)]
enhance codegen to put 16-bit character strings into the
__TEXT,__ustring section on darwin.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78068
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Aug 2009 16:19:50 +0000 (16:19 +0000)]
fix a fixme: don't create an explicit "CStringSection" for ELF,
it is just being used as a prefix, so forward substitute it directly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78067
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Aug 2009 16:13:09 +0000 (16:13 +0000)]
Add support emiting for 2/4 byte mergable strings to the ".rodata.str*"
section on ELF targets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78066
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 4 Aug 2009 15:47:18 +0000 (15:47 +0000)]
* Use "svn export" instead of "svn co" and avoid cleaning up .svn dirs
* Use "svn info" to get last revision in repo, will get matching tarballs
* Now run "svn -q" since "svn info" tells us the revision number
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78065
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 4 Aug 2009 11:18:31 +0000 (11:18 +0000)]
Ooops, I was too fast to commit the wrong fix :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78060
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Tue, 4 Aug 2009 11:12:51 +0000 (11:12 +0000)]
Fix a typo - this unbreaks llvm-gcc build on arm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78059
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 Aug 2009 08:34:18 +0000 (08:34 +0000)]
Thumb2 does not have ib (increment before) and da (decrement after) forms of ldm / stm.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78057
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 4 Aug 2009 06:00:18 +0000 (06:00 +0000)]
Use separate ValueList for metadata.
This fixes PR4666.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78056
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Aug 2009 05:35:56 +0000 (05:35 +0000)]
make MergeableCString be a SectionKind "abstract class", and
add new concrete versions for 1/2/4-byte mergable strings.
These are not actually created yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78055
91177308-0d34-0410-b5e6-
96231b3b80d8
Edward O'Callaghan [Tue, 4 Aug 2009 05:24:28 +0000 (05:24 +0000)]
Minor www site formating improvements.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78054
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 4 Aug 2009 05:01:35 +0000 (05:01 +0000)]
Revert recent bitcode writer patches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78053
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 4 Aug 2009 04:48:31 +0000 (04:48 +0000)]
llvm-gcc checks the static asm variable is valid in ValidateRegisterVariable. Make this work for PPC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78051
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 4 Aug 2009 04:31:02 +0000 (04:31 +0000)]
switch ValueMap to using AssertingVH. This is an old patch I had laying
around in a tree I forgot about.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78048
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 Aug 2009 04:08:40 +0000 (04:08 +0000)]
No really, it's unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78047
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 Aug 2009 04:04:25 +0000 (04:04 +0000)]
Remove unused function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78046
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Tue, 4 Aug 2009 04:02:45 +0000 (04:02 +0000)]
Remove now unused Module argument to createTargetMachine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78043
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 4 Aug 2009 03:46:54 +0000 (03:46 +0000)]
Fixed now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78042
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Tue, 4 Aug 2009 03:44:37 +0000 (03:44 +0000)]
Add test for PR4678
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78040
91177308-0d34-0410-b5e6-
96231b3b80d8
Bill Wendling [Tue, 4 Aug 2009 03:40:47 +0000 (03:40 +0000)]
XFAIL for the moment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78038
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 4 Aug 2009 02:54:15 +0000 (02:54 +0000)]
Remove dead code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78035
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 4 Aug 2009 02:36:39 +0000 (02:36 +0000)]
Fix MDString Abbrev setup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78034
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Tue, 4 Aug 2009 02:26:56 +0000 (02:26 +0000)]
Constants and Metadata share ValueList. This means they must be emitted interleaved (using appropriate BLOCK_IDs) otherwise ValuePtrs index gets out of sync.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78033
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 Aug 2009 01:56:09 +0000 (01:56 +0000)]
Remove ARM specific getInlineAsmLength. We'll rely on the simpler (and faster) generic algorithm for now. If more accurate computation is needed, we'll rely on the disassembler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78032
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 Aug 2009 01:43:45 +0000 (01:43 +0000)]
Load / store multiple pass fixes for Thumb2. Not enabled yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78031
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Tue, 4 Aug 2009 01:41:15 +0000 (01:41 +0000)]
Emit sub r, #c instead of transforming it to add r, #-c if c fits in 8-bit. This is a bit of pre-mature optimization. 8-bit variant makes it likely it will be narrowed to a 16-bit instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78030
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 4 Aug 2009 00:36:16 +0000 (00:36 +0000)]
Lower Neon VLD* intrinsics to custom DAG nodes, and manually allocate the
results to fixed registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78025
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Tue, 4 Aug 2009 00:25:01 +0000 (00:25 +0000)]
Minor cleanup. No functional changes intended.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78024
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Tue, 4 Aug 2009 00:24:42 +0000 (00:24 +0000)]
Propogate the Depth argument when calling
TLI.computeMaskedBitsForTargetNode from ComputeMaskedBits, since
the former may call back into the latter. This fixes a major
compile time problem on a testcase that happnened to hit this
in a particularly bad way, PR4643.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78023
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Mon, 3 Aug 2009 23:44:01 +0000 (23:44 +0000)]
Update CMake files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78020
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 23:20:21 +0000 (23:20 +0000)]
eliminate CurrentSection, rename CurrentSection_ -> CurrentSection, make it private,
eliminate IsInTextSection.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78017
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 23:10:34 +0000 (23:10 +0000)]
Kill off SwitchToDataSection and SwitchToTextSection, woo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78015
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 23:02:45 +0000 (23:02 +0000)]
remove an unneeded section switch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78014
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 22:52:21 +0000 (22:52 +0000)]
switch ppc to using SwitchToSection instead of textual section stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78013
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 3 Aug 2009 22:51:10 +0000 (22:51 +0000)]
Keep track of metadata used by other metadata.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78012
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 22:32:50 +0000 (22:32 +0000)]
use TLOF to compute the section for a function instead of
replicating the logic manually.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78011
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 Aug 2009 22:30:18 +0000 (22:30 +0000)]
Minor whitespace fix, so this doesn't look like a unary *.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78010
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 Aug 2009 22:24:22 +0000 (22:24 +0000)]
Add -disable-output. Thanks Bill!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78009
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 22:18:15 +0000 (22:18 +0000)]
convert macho stub emission to use SwitchToSection instead of
textual sections.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78007
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 22:16:57 +0000 (22:16 +0000)]
hoist some common code out of a switch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78006
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Mon, 3 Aug 2009 22:07:33 +0000 (22:07 +0000)]
Add a new Constant::getIntegerValue helper function, and convert a
few places in InstCombine to use it, to fix problems handling pointer
types. This fixes the recent llvm-gcc bootstrap error.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78005
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 21:57:00 +0000 (21:57 +0000)]
this really shouldn't switch sections without telling the asmprinter, but
hey it uses .previous, so it should work :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78004
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Mon, 3 Aug 2009 21:55:09 +0000 (21:55 +0000)]
Re-apply LiveInterval index dumping patch, with fixes suggested by Bill
and others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78003
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 21:53:27 +0000 (21:53 +0000)]
Eliminate textual section switching from the x86 backend, one
more step towards "semantics sections"
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78002
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 3 Aug 2009 20:36:38 +0000 (20:36 +0000)]
Lower CONCAT_VECTOR during legalization instead of matching it during isel.
Add a testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77992
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 3 Aug 2009 20:08:18 +0000 (20:08 +0000)]
Fix Bug 4657: register scavenger asserts with subreg lowering
When LowerSubregsInstructionPass::LowerInsert eliminates an INSERT_SUBREG
instriction because it is an identity copy, make sure that the same registers
are alive before and after the elimination.
When the super-register is marked <undef> this requires inserting an
IMPLICIT_DEF instruction to make sure the super register is live.
Fix a related bug where a kill flag on the inserted sub-register was not transferred properly.
Finally, clear the undef flag in MachineInstr::addRegisterKilled. Undef implies dead and kill implies live, so they cant both be valid.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77989
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Mon, 3 Aug 2009 19:32:30 +0000 (19:32 +0000)]
Minor stylistic cleanups in the Blackfin target.
Thanks Chris.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77987
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 3 Aug 2009 19:15:42 +0000 (19:15 +0000)]
Make SimplifyDemandedUseBits generate vector constants where
appropriate. Patch per report on llvmdev. No testcase because the
original report didn't come with a testcase, and I can't come up with a case
that actually fails.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77986
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 19:12:26 +0000 (19:12 +0000)]
make getObjFileLowering() return a non-const reference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77984
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 19:10:44 +0000 (19:10 +0000)]
remove a dead switch directive, replace it with some
code that I will be using shortly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77983
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Mon, 3 Aug 2009 19:06:29 +0000 (19:06 +0000)]
Revert 77974. It breaks 3 of the ARM tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77982
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 3 Aug 2009 18:07:19 +0000 (18:07 +0000)]
Remove neverHasSideEffects on MMX_MOVD64rrv164 since it has a matching pattern.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77978
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 18:06:07 +0000 (18:06 +0000)]
eliminate textual section switching from intel asm printer.
This will cause it to enter the ".text" section instead of "_text"
but masm is already broken.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77977
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 3 Aug 2009 18:04:42 +0000 (18:04 +0000)]
make SwitchToSection accept null sections for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77976
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 3 Aug 2009 17:40:25 +0000 (17:40 +0000)]
Change C, CBE, MSIL to not provide target data via getTargetData().
- The theory is these should never actually be called, since these boil down to
passes which can access the target data via the standard mechanism.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77975
91177308-0d34-0410-b5e6-
96231b3b80d8
Sanjiv Gupta [Mon, 3 Aug 2009 17:35:21 +0000 (17:35 +0000)]
Allow targets to custom handle softening of results or operands before trying the standard stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77974
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 3 Aug 2009 17:34:19 +0000 (17:34 +0000)]
Provide target data from the module if the target machine doesn't have any.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77973
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Mon, 3 Aug 2009 13:33:33 +0000 (13:33 +0000)]
llvm_report_error already prints "LLVM ERROR:". So stop reporting errors like "LLVM ERROR: llvm: error:" or "LLVM ERROR: ERROR:".
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77971
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 3 Aug 2009 08:43:36 +0000 (08:43 +0000)]
Unbreak win64 compilation callback.
Since we're generating stubs by hands we don't follow the ABI and don't
create a register spill area.
Don't use this area in compilation callback!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77968
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 3 Aug 2009 08:41:59 +0000 (08:41 +0000)]
Fix a coaelescer bug. If a copy val# is extended to eliminate a non-trivially coalesced copy, and the copy kills its source register. Trim the source register's live range to the last use if possible. This fixes up kill marker to make the scavenger happy.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77967
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 3 Aug 2009 08:14:30 +0000 (08:14 +0000)]
Create proper frame index for FP
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77966
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 3 Aug 2009 08:14:14 +0000 (08:14 +0000)]
Perform bitconvert to proper type
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77965
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 3 Aug 2009 08:13:56 +0000 (08:13 +0000)]
Add 'Indirect' LocInfo class and use to pass __m128 on win64. Also minore fixes here and there (mostly __m64).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77964
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 3 Aug 2009 08:13:24 +0000 (08:13 +0000)]
Cleanup Darwin MMX calling conv stuff - make the stuff more generic. This also fixes a subtle bug, when 6th v1i64 argument passed wrongly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77963
91177308-0d34-0410-b5e6-
96231b3b80d8
Anton Korobeynikov [Mon, 3 Aug 2009 08:12:53 +0000 (08:12 +0000)]
Unbreak Win64 CC. Step one: honour register save area, fix some alignment and provide a different set of call-clobberred registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77962
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Mon, 3 Aug 2009 07:16:42 +0000 (07:16 +0000)]
Remove the GCC path from libLTO. This has been superceded by setAssemblerPath.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77960
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Mon, 3 Aug 2009 06:19:01 +0000 (06:19 +0000)]
Add NamedMDNode destructor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77959
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 3 Aug 2009 05:21:05 +0000 (05:21 +0000)]
Use movd instead of movq
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77956
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 3 Aug 2009 05:12:16 +0000 (05:12 +0000)]
Add FileUpdate tool, conditionally updates its output based on its input.
- Gratuitous and unused, but possibly useful one day.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77954
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 3 Aug 2009 05:02:46 +0000 (05:02 +0000)]
Fix a race condition in getting the process exit code on Win32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77953
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 3 Aug 2009 04:20:57 +0000 (04:20 +0000)]
Remove now unused arguments from TargetRegistry::lookupTarget.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77950
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 3 Aug 2009 04:08:36 +0000 (04:08 +0000)]
These are done.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77949
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 3 Aug 2009 04:03:51 +0000 (04:03 +0000)]
Pass target triple string in to TargetMachine constructor.
This is not just a matter of passing in the target triple from the module;
currently backends are making decisions based on the build and host
architecture. The goal is to migrate to making these decisions based off of the
triple (in conjunction with the feature string). Thus most clients pass in the
target triple, or the host triple if that is empty.
This has one important change in the way behavior of the JIT and llc.
For the JIT, it was previously selecting the Target based on the host
(naturally), but it was setting the target machine features based on the triple
from the module. Now it is setting the target machine features based on the
triple of the host.
For LLC, -march was previously only used to select the target, the target
machine features were initialized from the module's triple (which may have been
empty). Now the target triple is taken from the module, or the host's triple is
used if that is empty. Then the triple is adjusted to match -march.
The take away is that -march for llc is now used in conjunction with the host
triple to initialize the subtarget. If users want more deterministic behavior
from llc, they should use -mtriple, or set the triple in the input module.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77946
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 3 Aug 2009 03:27:05 +0000 (03:27 +0000)]
Fix the instruction encoding.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77944
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 3 Aug 2009 03:00:05 +0000 (03:00 +0000)]
Remove a bitcast that was a no-op.
Thanks to Eli Friedman for noticing it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77942
91177308-0d34-0410-b5e6-
96231b3b80d8
Rafael Espindola [Mon, 3 Aug 2009 02:45:34 +0000 (02:45 +0000)]
Use movq to move 64 bits in and out of mmx registers.
Fixes PR4669
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77940
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 3 Aug 2009 02:38:06 +0000 (02:38 +0000)]
Use the i12 variant of load / store opcodes if offset is zero. Now we pass all of multisource as well.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77939
91177308-0d34-0410-b5e6-
96231b3b80d8
Eli Friedman [Mon, 3 Aug 2009 02:22:28 +0000 (02:22 +0000)]
Remove -disable-mips-abicall and -enable-mips-absolute-call command-line
options, which don't appear to be useful. -enable-mips-absolute-call is
completely unused (and unless I'm mistaken, is supposed to have the
same effect that -relocation-model=dynamic-no-pic should have),
and -disable-mips-abicall appears to be effectively a
synonym for -relocation-model=static. Adjust the few users of hasABICall
to checks which seem more appropriate. Update MipsSubtarget,
MipsTargetMachine, and MipselTargetMachine to synchronize with recent
changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77938
91177308-0d34-0410-b5e6-
96231b3b80d8
Andreas Bolka [Mon, 3 Aug 2009 01:03:48 +0000 (01:03 +0000)]
Restrict LDA to affine subscripts.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77932
91177308-0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Mon, 3 Aug 2009 01:02:24 +0000 (01:02 +0000)]
Fix some comments referring to std::cerr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77931
91177308-0d34-0410-b5e6-
96231b3b80d8