Chris Lattner
16dc0cd8a2
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.
llvm-svn: 78096
2009-08-04 20:09:41 +00:00
Jakob Stoklund Olesen
f465f06aa4
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.
llvm-svn: 78095
2009-08-04 20:09:25 +00:00
Mike Stump
7551d05358
Will I ever get used to CamelCase? Will I ever like capitols for
...
random variables?
--This line, and those below, will be ignored--
M lib/CodeGen/CGCXX.cpp
llvm-svn: 78094
2009-08-04 20:06:48 +00:00
Jakob Stoklund Olesen
6304369c4e
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.
llvm-svn: 78093
2009-08-04 20:01:11 +00:00
Mike Stump
b0dd95d6d3
Add armv7 support.
...
llvm-svn: 78092
2009-08-04 19:48:52 +00:00
Jakob Stoklund Olesen
3c2a1dea71
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.
llvm-svn: 78090
2009-08-04 19:18:01 +00:00
Jakob Stoklund Olesen
d302ab9961
Most flags are reserved registers on Blackfin.
...
The only exception is CC.
llvm-svn: 78089
2009-08-04 19:16:55 +00:00
Evan Cheng
a3abe2a7ce
In thumb mode, r7 is used as frame register. This fixes pr4681.
...
llvm-svn: 78086
2009-08-04 18:46:17 +00:00
David Goodwin
a3839bc6c0
Match common pattern for FNMAC. Add NEON SP support.
...
llvm-svn: 78085
2009-08-04 18:44:29 +00:00
Anders Carlsson
5638895b2a
Revert the fix for PR3800, it broke things.
...
llvm-svn: 78084
2009-08-04 18:18:36 +00:00
David Goodwin
a2824d5700
Improve tests.
...
llvm-svn: 78083
2009-08-04 18:11:59 +00:00
Sanjiv Gupta
b4c28d23e1
Legalize i64 store operations generated by inst-combine.
...
llvm-svn: 78082
2009-08-04 17:59:16 +00:00
David Goodwin
3b9c52c5c1
Initial support for single-precision FP using NEON. Added "neonfp" attribute to enable. Added patterns for some binary FP operations.
...
llvm-svn: 78081
2009-08-04 17:53:06 +00:00
Ted Kremenek
36c14a0f1a
Renable "html" indexing by default.
...
llvm-svn: 78077
2009-08-04 17:05:18 +00:00
Douglas Gregor
465396b5b8
Add some type traits that are used for Clang's statically-checked
...
canonical types.
llvm-svn: 78076
2009-08-04 17:04:52 +00:00
Fariborz Jahanian
b61af4c566
Some code refactoring. Be more generous in issuance of warning
...
on method type mismatches per Chris's comment.
llvm-svn: 78075
2009-08-04 17:01:09 +00:00
Evan Cheng
206ee96bd6
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.
llvm-svn: 78072
2009-08-04 16:52:44 +00:00
Douglas Gregor
d6ff33294a
Refactor template instantiation for types into a generic tree
...
transformation template (TreeTransform) that handles the
transformation and reconstruction of AST nodes. Template instantiation
for types is a (relatively small) customization of the generic tree
transformation.
llvm-svn: 78071
2009-08-04 16:50:30 +00:00
Daniel Dunbar
ed65bf420d
Avoid compiler warning (in -Asserts mode)
...
llvm-svn: 78070
2009-08-04 16:46:12 +00:00
Anders Carlsson
19702bb054
Simplify alignment handling in the record builder.
...
llvm-svn: 78069
2009-08-04 16:29:15 +00:00
Chris Lattner
f222054df7
enhance codegen to put 16-bit character strings into the
...
__TEXT,__ustring section on darwin.
llvm-svn: 78068
2009-08-04 16:27:13 +00:00
Chris Lattner
eee9df0e97
fix a fixme: don't create an explicit "CStringSection" for ELF,
...
it is just being used as a prefix, so forward substitute it directly.
llvm-svn: 78067
2009-08-04 16:19:50 +00:00
Chris Lattner
81bbf443fe
Add support emiting for 2/4 byte mergable strings to the ".rodata.str*"
...
section on ELF targets.
llvm-svn: 78066
2009-08-04 16:13:09 +00:00
Misha Brukman
bbabd39cce
* 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
llvm-svn: 78065
2009-08-04 15:47:18 +00:00
Anton Korobeynikov
d0a53d380a
Ooops, I was too fast to commit the wrong fix :(
...
llvm-svn: 78060
2009-08-04 11:18:31 +00:00
Anton Korobeynikov
3c5b68e2a7
Fix a typo - this unbreaks llvm-gcc build on arm
...
llvm-svn: 78059
2009-08-04 11:12:51 +00:00
Evan Cheng
3870fbb561
Thumb2 does not have ib (increment before) and da (decrement after) forms of ldm / stm.
...
llvm-svn: 78057
2009-08-04 08:34:18 +00:00
Devang Patel
05eb617da5
Use separate ValueList for metadata.
...
This fixes PR4666.
llvm-svn: 78056
2009-08-04 06:00:18 +00:00
Chris Lattner
b58dc1c667
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.
llvm-svn: 78055
2009-08-04 05:35:56 +00:00
Edward O'Callaghan
ab8a04c6a8
Minor www site formating improvements.
...
llvm-svn: 78054
2009-08-04 05:24:28 +00:00
Devang Patel
8cca7b4abe
Revert recent bitcode writer patches.
...
llvm-svn: 78053
2009-08-04 05:01:35 +00:00
Edward O'Callaghan
eb5cb6b515
Some compiler-rt www site improvements.
...
llvm-svn: 78052
2009-08-04 04:48:38 +00:00
Bill Wendling
fd5d735e2b
llvm-gcc checks the static asm variable is valid in ValidateRegisterVariable. Make this work for PPC.
...
llvm-svn: 78051
2009-08-04 04:48:31 +00:00
Daniel Dunbar
83142021fb
lit: Some sample tests, for testing the tester
...
llvm-svn: 78050
2009-08-04 04:40:15 +00:00
Daniel Dunbar
e9863976b3
Fix test case for Darwin10 (which sets ssp), and move to CodeGen/
...
llvm-svn: 78049
2009-08-04 04:38:31 +00:00
Chris Lattner
59c08e76ca
switch ValueMap to using AssertingVH. This is an old patch I had laying
...
around in a tree I forgot about.
llvm-svn: 78048
2009-08-04 04:31:02 +00:00
Daniel Dunbar
ad9a6c4855
No really, it's unused.
...
llvm-svn: 78047
2009-08-04 04:08:40 +00:00
Daniel Dunbar
8f388e44e0
Remove unused function.
...
llvm-svn: 78046
2009-08-04 04:04:25 +00:00
Daniel Dunbar
4a2cdc3302
Update for LLVM API change
...
llvm-svn: 78044
2009-08-04 04:02:57 +00:00
Daniel Dunbar
09c1d0002b
Remove now unused Module argument to createTargetMachine.
...
llvm-svn: 78043
2009-08-04 04:02:45 +00:00
Bill Wendling
0549ae4181
Fixed now.
...
llvm-svn: 78042
2009-08-04 03:46:54 +00:00
Rafael Espindola
dde8b5848a
Add test for PR4678
...
llvm-svn: 78040
2009-08-04 03:44:37 +00:00
Bill Wendling
0c685e1055
XFAIL for the moment.
...
llvm-svn: 78038
2009-08-04 03:40:47 +00:00
Edward O'Callaghan
30009e7121
Refactor out common pre-processor code.
...
llvm-svn: 78037
2009-08-04 03:30:10 +00:00
Devang Patel
4314b1dc01
Remove dead code.
...
llvm-svn: 78035
2009-08-04 02:54:15 +00:00
Devang Patel
b299790411
Fix MDString Abbrev setup.
...
llvm-svn: 78034
2009-08-04 02:36:39 +00:00
Devang Patel
8abe6bc291
Constants and Metadata share ValueList. This means they must be emitted interleaved (using appropriate BLOCK_IDs) otherwise ValuePtrs index gets out of sync.
...
llvm-svn: 78033
2009-08-04 02:26:56 +00:00
Evan Cheng
f43cf709cb
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.
...
llvm-svn: 78032
2009-08-04 01:56:09 +00:00
Evan Cheng
71756e789b
Load / store multiple pass fixes for Thumb2. Not enabled yet.
...
llvm-svn: 78031
2009-08-04 01:43:45 +00:00
Evan Cheng
03eb0e3c33
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.
...
llvm-svn: 78030
2009-08-04 01:41:15 +00:00