Evan Cheng
b39a6be77a
Fix for PR4225: When rewriter reuse a value in a physical register , it clear the register kill operand marker and its kill ops information. However, the cleared operand may be a def of a super-register. Clear the kill ops info for the super-register's sub-registers as well.
...
llvm-svn: 72758
2009-06-03 09:00:27 +00:00
Evan Cheng
ab0c710fae
Temporarily revert 72756 for now.
...
llvm-svn: 72757
2009-06-03 07:40:47 +00:00
Evan Cheng
dfe6e689fd
Fold preceding / trailing base inc / dec into the single load / store as well.
...
llvm-svn: 72756
2009-06-03 06:14:58 +00:00
Evan Cheng
d29fc6655f
If there is a def of a super-register followed by a use of a sub-register, do *not* add an implicit def of the sub-register. e.g.
...
EAX = ..., AX<imp-def>
...
= AX
This creates a double-def. Apparently this used to be necessary but is no longer needed.
Thanks to Anton for pointing this out. Anton, I cannot create a test case without your uncommitted ARM patches. Please check in a test case for me.
llvm-svn: 72755
2009-06-03 05:15:46 +00:00
Bruno Cardoso Lopes
dcf60b6b3e
Move structures and classes into header files, providing two new headers and
...
one new .cpp file, in preparation for merging in the Direct Object Emission
changes we're working on. No functional changes.
Fixed coding style issues on the original patch. Patch by Aaron Gray
llvm-svn: 72754
2009-06-03 03:43:31 +00:00
Argyrios Kyrtzidis
b1d51aa18a
Use "()" instead of "(void)" when pretty-printing a parameter-less function type for C++.
...
llvm-svn: 72747
2009-06-03 02:06:50 +00:00
Dan Gohman
fc262babc3
Revert r72734. The Darwin assembler doesn't support the static
...
relocation model on x86-64. Higher level logic should override
the relocation model to PIC on x86_64-apple-darwin.
llvm-svn: 72746
2009-06-03 00:37:20 +00:00
Dan Gohman
b003dd907f
Change TargetFolder's TD member from a reference to a
...
pointer, now that ConstantFoldConstantExpression can
accept a null TargetData pointer.
llvm-svn: 72744
2009-06-03 00:13:48 +00:00
Douglas Gregor
f727bb18d9
More PCH documentation
...
llvm-svn: 72743
2009-06-02 22:08:07 +00:00
Daniel Dunbar
4b665ebb01
Add clang-cc support for -disable-llvm-optzns.
...
- Avoids running any LLVM optimizations, even at -O2, etc., while still keeping
any language changes these optimizations imply.
llvm-svn: 72742
2009-06-02 22:07:45 +00:00
Dan Gohman
136bd719f0
Change ConstantFoldConstantExpression to accept a null
...
TargetData pointer. The only thing it's used for are
calls to ConstantFoldCompareInstOperands and
ConstantFoldInstOperands, which both already accept a
null TargetData pointer. This makes
ConstantFoldConstantExpression easier to use in clients
where TargetData is optional.
llvm-svn: 72741
2009-06-02 21:48:15 +00:00
Dan Gohman
d52dddf022
Delete an unnecessary forward declaration.
...
llvm-svn: 72740
2009-06-02 21:37:43 +00:00
Dan Gohman
760377effc
Fix CodeGenPrepare's address-mode sinking to handle unusual
...
addresses, involving Base values which do not have Pointer type.
This fixes PR4297.
llvm-svn: 72739
2009-06-02 21:29:13 +00:00
Daniel Dunbar
6cbe978df2
NightlyTest: Stop running a separate Olden pass during nightly test.
...
- Unless I'm mistaken, these results weren't even being reported and just
served to clobber the previous build products and waste cycles.
llvm-svn: 72738
2009-06-02 21:14:15 +00:00
Fariborz Jahanian
991a2b1933
Diagnose misuse of __strong attribute in a redeclaration.
...
llvm-svn: 72737
2009-06-02 20:58:58 +00:00
Torok Edwin
5273aa29eb
fix build on VC++2k8.
...
llvm-svn: 72736
2009-06-02 20:32:59 +00:00
Lang Hames
1dcd70c134
Fixed warning, removed some temporary validation code that snuck in during my last commit.
...
llvm-svn: 72735
2009-06-02 20:30:03 +00:00
Evan Cheng
448641d87c
On Darwin x86_64 small code model doesn't guarantee code address fits in 32-bit.
...
llvm-svn: 72734
2009-06-02 20:09:31 +00:00
Fariborz Jahanian
6ab4375f87
Issue diagnostics on __weak attribute mismatch.
...
Fixes an error recovery issue which caused a crash.
llvm-svn: 72733
2009-06-02 18:32:00 +00:00
Owen Anderson
5bd914d0ae
Undef MemoryFence when compiling on MSVC.
...
llvm-svn: 72732
2009-06-02 17:35:55 +00:00
Devang Patel
9643e4f985
Simplify assertion message to avoid confusion.
...
llvm-svn: 72731
2009-06-02 17:26:29 +00:00
Lang Hames
fc968ef687
Update to in-place spilling framework. Includes live interval scaling and trivial rewriter.
...
llvm-svn: 72729
2009-06-02 16:53:25 +00:00
Eli Friedman
47b8a8d522
Missing file for __builtin_unwind_init support.
...
llvm-svn: 72728
2009-06-02 09:39:16 +00:00
Eli Friedman
cb9d07caeb
Add support for __builtin_unwind_init.
...
Also, committing an #if 0'ed __builtin_setjmp and __builtin_longjmp
implementation I've had sitting in my tree for a while. I haven't
enabled it because the LLVM backend support isn't complete yet.
llvm-svn: 72727
2009-06-02 09:37:50 +00:00
Eli Friedman
9baa191f31
PR4142: Add %m format string specifier.
...
llvm-svn: 72726
2009-06-02 08:36:19 +00:00
Eli Friedman
164da6618e
A couple minor corrections to the "GCC extensions not implemented yet"
...
section of the users manual.
llvm-svn: 72725
2009-06-02 08:21:31 +00:00
Eli Friedman
fd80b2af16
PR4288: Make -dD (dump macros with preprocessed source) play nicely with
...
# line directives.
llvm-svn: 72724
2009-06-02 07:55:39 +00:00
Eli Friedman
5aa28de4fe
Fix a silly typo in my previous objc_gc merging patch.
...
llvm-svn: 72723
2009-06-02 07:45:37 +00:00
Eli Friedman
f6bd15038c
If we recognize alloca, treat it as a builtin. This fixes uses of
...
alloca without declaring it.
llvm-svn: 72719
2009-06-02 07:10:30 +00:00
Eli Friedman
cb8302ee3e
Add builtin declarations for the variants of sin and cos.
...
llvm-svn: 72718
2009-06-02 07:06:02 +00:00
Eli Friedman
f83c258eae
Add aliases for a couple of SSE intrinsics. Patch by Ed Schouten.
...
llvm-svn: 72717
2009-06-02 05:55:48 +00:00
Eli Friedman
28d85c0803
Add --shared option.
...
llvm-svn: 72716
2009-06-02 05:46:32 +00:00
Eli Friedman
091a9ac014
Cleaned-up version of gc attribute type merging. I still don't like it
...
very much, but I have a feeling we're never going to have an
implementation that makes sense because of compatibility issues.
llvm-svn: 72715
2009-06-02 05:28:56 +00:00
Eli Friedman
179f2b9ec7
Remove test which doesn't pass with gcc.
...
llvm-svn: 72714
2009-06-02 05:24:36 +00:00
Sanjiv Gupta
7c72007e2a
Add floating point details to PIC16 Target.
...
llvm-svn: 72713
2009-06-02 04:43:46 +00:00
Dale Johannesen
5234d3795f
Revert 72707 and 72709, for the moment.
...
llvm-svn: 72712
2009-06-02 03:12:52 +00:00
Fariborz Jahanian
2d725b19da
This patch attempts to fix the merging of __strong/__weak attributes
...
in merge_types. It is incomplete. We probably want to issue
a warning if user attempts to change the attribute from __weak to
__strong or vice-vera. It also assumes that a __weak/__strong
attribute can not be specified with other (currently one) type
attriute.
llvm-svn: 72711
2009-06-02 01:40:22 +00:00
Evan Cheng
836894405f
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
7fde88cce8
Add missing file.
...
llvm-svn: 72709
2009-06-01 23:48:58 +00:00
Nick Kledzik
94e2d973c8
update comments about .objc_ symbols being generated
...
llvm-svn: 72708
2009-06-01 23:41:09 +00:00
Dale Johannesen
0b8ca79253
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
ff10450680
Comment grammaro/clarification.
...
llvm-svn: 72706
2009-06-01 23:13:42 +00:00
Dale Johannesen
67f472feed
Trailing whitespace.
...
llvm-svn: 72705
2009-06-01 23:12:52 +00:00
Daniel Dunbar
3acbe4ab58
Fix rare failure of .ver-svn creation, it has a dependency that the output
...
directory exist.
llvm-svn: 72704
2009-06-01 22:15:35 +00:00
Fariborz Jahanian
c6d9800564
A corner case of objc2 gc's write-barrier generation
...
for the Next runtime.
llvm-svn: 72703
2009-06-01 21:29:32 +00:00
Mike Stump
245fa0744f
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
b481c2015a
<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
5ea3e9db43
Accidental commit. This isn't ready for prime time just yet.
...
llvm-svn: 72699
2009-06-01 20:18:46 +00:00
Anton Korobeynikov
12694bd8ac
Implement review feedback. Make thumb2 'normal' subtarget feature
...
llvm-svn: 72698
2009-06-01 20:00:48 +00:00
Bruno Cardoso Lopes
9fd794bebf
Fix new CodeEmitter stuff to follow LLVM codying style. Patch by Aaron Gray
...
llvm-svn: 72697
2009-06-01 19:57:37 +00:00