Owen Anderson
6a94d2450e
Undef MemoryFence when compiling on MSVC.
...
llvm-svn: 72732
2009-06-02 17:35:55 +00:00
Devang Patel
a485e31081
Simplify assertion message to avoid confusion.
...
llvm-svn: 72731
2009-06-02 17:26:29 +00:00
Lang Hames
1a81422fab
Update to in-place spilling framework. Includes live interval scaling and trivial rewriter.
...
llvm-svn: 72729
2009-06-02 16:53:25 +00:00
Dale Johannesen
8b6ee9e312
Revert 72707 and 72709, for the moment.
...
llvm-svn: 72712
2009-06-02 03:12:52 +00:00
Evan Cheng
7875093e82
Avoid infinite looping in AllGlobalLoadUsesSimpleEnoughForHeapSRA(). This can happen when PHI uses are recursively dependent on each other.
...
llvm-svn: 72710
2009-06-02 00:56:07 +00:00
Dale Johannesen
fe3b3add52
Add missing file.
...
llvm-svn: 72709
2009-06-01 23:48:58 +00:00
Nick Kledzik
c367a91ca8
update comments about .objc_ symbols being generated
...
llvm-svn: 72708
2009-06-01 23:41:09 +00:00
Dale Johannesen
c08669561e
Make the implicit inputs and outputs of target-independent
...
ADDC/ADDE use MVT::i1 (later, whatever it gets legalized to)
instead of MVT::Flag. Remove CARRY_FALSE in favor of 0; adjust
all target-independent code to use this format.
Most targets will still produce a Flag-setting target-dependent
version when selection is done. X86 is converted to use i32
instead, which means TableGen needs to produce different code
in xxxGenDAGISel.inc. This keys off the new supportsHasI1 bit
in xxxInstrInfo, currently set only for X86; in principle this
is temporary and should go away when all other targets have
been converted. All relevant X86 instruction patterns are
modified to represent setting and using EFLAGS explicitly. The
same can be done on other targets.
The immediate behavior change is that an ADC/ADD pair are no
longer tightly coupled in the X86 scheduler; they can be
separated by instructions that don't clobber the flags (MOV).
I will soon add some peephole optimizations based on using
other instructions that set the flags to feed into ADC.
llvm-svn: 72707
2009-06-01 23:27:20 +00:00
Dale Johannesen
548149ef8d
Comment grammaro/clarification.
...
llvm-svn: 72706
2009-06-01 23:13:42 +00:00
Dale Johannesen
4ad4ae870b
Trailing whitespace.
...
llvm-svn: 72705
2009-06-01 23:12:52 +00:00
Mike Stump
f39ed4d4f9
Dcoument that the opauque value used to construct QNaNs is truncated
...
as necessary.
llvm-svn: 72702
2009-06-01 21:02:35 +00:00
Nick Kledzik
3486856fd9
<rdar://problem/6927148> libLTO needs to handle i386 magic objc class symbols
...
Parse __OBJC data structures and synthesize magic .objc_ symbols.
Also, alter mangler so that objc method names are readable.
llvm-svn: 72700
2009-06-01 20:33:09 +00:00
Bill Wendling
c77c8e5f6e
Accidental commit. This isn't ready for prime time just yet.
...
llvm-svn: 72699
2009-06-01 20:18:46 +00:00
Anton Korobeynikov
e7e9118514
Implement review feedback. Make thumb2 'normal' subtarget feature
...
llvm-svn: 72698
2009-06-01 20:00:48 +00:00
Bruno Cardoso Lopes
7765059062
Fix new CodeEmitter stuff to follow LLVM codying style. Patch by Aaron Gray
...
llvm-svn: 72697
2009-06-01 19:57:37 +00:00
Anton Korobeynikov
f6ec078b26
Do not emit "generic" CPU string. This fixes PR4291.
...
llvm-svn: 72696
2009-06-01 19:03:17 +00:00
Eli Friedman
2b0edc3327
PR4286: Make RewriteLoadUserOfWholeAlloca and
...
RewriteStoreUserOfWholeAlloca deal with tail padding because
isSafeUseOfBitCastedAllocation expects them to. Otherwise, we crash
trying to erase the bitcast.
llvm-svn: 72688
2009-06-01 09:14:32 +00:00
Nick Lewycky
1ca5bb9869
Update the bitcode reader to support reading .bc files where the embedded
...
metadata references non-Constant values such as instructions.
llvm-svn: 72685
2009-06-01 04:42:10 +00:00
Nick Lewycky
8e4eb22f45
Add missing codenames to the .bc analyzer.
...
llvm-svn: 72684
2009-06-01 04:41:03 +00:00
Dan Gohman
b38d9b6a57
Fix a grammaro and clarify a comment.
...
llvm-svn: 72668
2009-05-31 17:52:18 +00:00
Dan Gohman
0e4b3c0955
Delete an obsolete sentance from a comment.
...
llvm-svn: 72667
2009-05-31 16:18:57 +00:00
Dan Gohman
76f405a65f
Fix the name of the function in this comment.
...
llvm-svn: 72666
2009-05-31 16:18:03 +00:00
Owen Anderson
928040c625
Be more aggressive in doing LoadPRE by tracing backwards when a block only has
...
a single predecessor.
Patch by Jakub Staszak.
llvm-svn: 72661
2009-05-31 09:03:40 +00:00
Nick Lewycky
d26b226f47
Fix typo in error message.
...
llvm-svn: 72659
2009-05-31 06:07:28 +00:00
Duncan Sands
222fbd50d9
Rename CustomLowerResults to CustomLowerNode, since
...
it is used both when a result is illegal and when an
operand is illegal.
llvm-svn: 72658
2009-05-31 04:15:38 +00:00
Bruno Cardoso Lopes
aba334e40e
Use uint8_t and int32_t in {JIT,Machine}CodeEmiters
...
llvm-svn: 72650
2009-05-30 23:50:33 +00:00
Bruno Cardoso Lopes
d9c92b3825
Add AMD64 elf machine type
...
llvm-svn: 72635
2009-05-30 21:05:47 +00:00
Bruno Cardoso Lopes
4da7e7af43
First patch in the direction of splitting MachineCodeEmitter in two subclasses:
...
JITCodeEmitter and ObjectCodeEmitter. No functional changes yet. Patch by Aaron Gray
llvm-svn: 72631
2009-05-30 20:51:52 +00:00
Chris Lattner
8ac63163fe
fix PR4284, a bug in simplifylibcalls handling memcmp. Patch by
...
Benjamin Kramer!
llvm-svn: 72625
2009-05-30 18:43:04 +00:00
Nick Lewycky
b7afbf8a63
Metadata uses metadata type not empty struct.
...
llvm-svn: 72623
2009-05-30 16:08:30 +00:00
Mike Stump
72e70811c8
Add some documentation.
...
llvm-svn: 72622
2009-05-30 15:19:29 +00:00
Duncan Sands
3d77d1fcfc
Adjust these tests now that "extern inline"
...
functions are being output with bodies and
available_externally linkage.
llvm-svn: 72620
2009-05-30 13:57:05 +00:00
Evan Cheng
2d198e1bc2
(i64 (zext (srl GR32 8))) -> movzbl AH is not safe since srl 8 only clear the top 8 bits.
...
llvm-svn: 72618
2009-05-30 08:43:27 +00:00
Nick Lewycky
a9de2f1c81
Give embedded metadata its own type instead of relying on EmptyStructTy.
...
llvm-svn: 72610
2009-05-30 05:06:04 +00:00
Mike Stump
5447116cbb
Add support for letting the client choose different flavors of NaNs. Testcase to be
...
added in clang.
llvm-svn: 72606
2009-05-30 03:49:43 +00:00
Bill Wendling
8235a05c1a
Untabification.
...
llvm-svn: 72604
2009-05-30 01:09:53 +00:00
Bill Wendling
d50f27458f
Untabify.
...
llvm-svn: 72603
2009-05-30 00:58:37 +00:00
Evan Cheng
d3943e6171
Untabify.
...
llvm-svn: 72600
2009-05-30 00:48:34 +00:00
Anton Korobeynikov
4f5b1ef545
Add placeholder for thumb2 stuff
...
llvm-svn: 72593
2009-05-29 23:41:08 +00:00
Bill Wendling
f26f8a579e
Enable GVN Load PRE.
...
llvm-svn: 72589
2009-05-29 20:38:16 +00:00
Duncan Sands
f4fe76d46b
Dan noticed that the verifier wasn't thoroughly checking uses of
...
invoke results (see the testcases). Tighten up the checking.
llvm-svn: 72586
2009-05-29 19:39:36 +00:00
Bruno Cardoso Lopes
6ec3c6fab6
Fix some typos
...
llvm-svn: 72579
2009-05-29 17:08:57 +00:00
Torok Edwin
845fc92978
just show the instruction, its not that slow.
...
llvm-svn: 72577
2009-05-29 16:58:36 +00:00
Torok Edwin
a4ebdef3e8
for instructions with void type we have no choice but print the instruction as
...
is, otherwise we get a <badref>.
llvm-svn: 72567
2009-05-29 10:28:44 +00:00
Torok Edwin
4a228edc3a
Add a DEBUG() output to GVN that prints the instruction clobbering a load.
...
This is useful when trying to figure out why GVN didn't eliminate redundant
loads.
llvm-svn: 72565
2009-05-29 09:46:03 +00:00
Owen Anderson
09c469ec35
Fix an issue where phiMap was not being updated properly when doing load PRE.
...
Diagnosis and patch thanks to Jakub Staszak.
llvm-svn: 72562
2009-05-29 05:37:54 +00:00
Evan Cheng
f911a0825b
Default isNarrowingProfitable to false.
...
llvm-svn: 72561
2009-05-29 05:31:40 +00:00
Evan Cheng
57f85a1529
Remove an accidental commit.
...
llvm-svn: 72560
2009-05-29 05:28:52 +00:00
Evan Cheng
550fc9ba9f
More h-registers tricks: folding zext nodes.
...
llvm-svn: 72558
2009-05-29 01:44:43 +00:00
Evan Cheng
a36a15ff66
Do not try to create a MVT type of width 0.
...
llvm-svn: 72557
2009-05-28 23:52:18 +00:00