Evan Cheng
89200c9177
Speculatively execute a block when the the block is the then part of a triangle shape and it contains a single, side effect free, cheap instruction. The branch is eliminated by adding a select instruction. i.e.
...
Turn
BB:
%t1 = icmp
br i1 %t1, label %BB1, label %BB2
BB1:
%t3 = add %t2, c
br label BB2
BB2:
=>
BB:
%t1 = icmp
%t4 = add %t2, c
%t3 = select i1 %t1, %t2, %t3
llvm-svn: 52073
2008-06-07 08:52:29 +00:00
Evan Cheng
003b4b0cd2
Fix run line.
...
llvm-svn: 52072
2008-06-07 08:40:16 +00:00
Evan Cheng
1a0835017a
Revert r52046. It broke cbe on x86 / Mac OS X.
...
llvm-svn: 52071
2008-06-07 07:50:29 +00:00
Sanjiv Gupta
1929242a94
Create debug type descriptors for aggregate/enum types.
...
llvm-svn: 52070
2008-06-07 04:46:53 +00:00
Dan Gohman
f6743d70ab
CodeGen support for insertvalue and extractvalue, and for loads and
...
stores of aggregate values.
llvm-svn: 52069
2008-06-07 02:02:36 +00:00
Owen Anderson
0bd08cf64c
Connect successors before creating the DAG node for the branch. This has
...
no visible functionality change, but enables a future patch where node creation
will update the CFG if it decides to create an unconditional rather than a conditional branch.
llvm-svn: 52067
2008-06-07 00:00:23 +00:00
Ted Kremenek
92611db88f
Use a common SourceManager when processing multiple files. This allows us to cache the contents of source files already loaded from disk.
...
llvm-svn: 52066
2008-06-06 22:42:39 +00:00
Ted Kremenek
af44b83296
Updated Xcode project.
...
llvm-svn: 52065
2008-06-06 21:48:51 +00:00
Gabor Greif
cbcc495c1b
get rid of ExtractValueInst::init's Value argument, it is already passed to the UnaryInstruction ctor
...
llvm-svn: 52064
2008-06-06 21:06:32 +00:00
Ted Kremenek
ef17049bac
Reclaim memory owned by ObjCForwardProtocolDecls.
...
llvm-svn: 52063
2008-06-06 21:05:33 +00:00
Evan Cheng
0b8f2c53a2
Typo.
...
llvm-svn: 52062
2008-06-06 21:00:10 +00:00
Gabor Greif
21ba184b27
make ExtractValueInst derived from UnaryInstruction
...
llvm-svn: 52061
2008-06-06 20:28:12 +00:00
Eli Friedman
fd1e32b1f3
Reorganize this loop a bit so it doesn't crash for empty unions. Fixes
...
PR2419.
llvm-svn: 52060
2008-06-06 20:12:37 +00:00
Ted Kremenek
71fff8b4de
Implement "Destroy" and destructor for ObjCClassDecl, allowing us to reclaim its memory and the memory of the Decls it owns.
...
llvm-svn: 52059
2008-06-06 20:11:53 +00:00
Evan Cheng
c324be32c4
Enable stack coloring by default.
...
llvm-svn: 52057
2008-06-06 19:52:44 +00:00
Evan Cheng
9bf9110d93
PPC preferred loop alignment is 16.
...
llvm-svn: 52056
2008-06-06 19:50:46 +00:00
Ted Kremenek
2e34af659a
Implement "Destroy" and destructor for ObjCProtocolDecl, allowing us to reclaim its memory and the memory of the Decls it owns.
...
llvm-svn: 52055
2008-06-06 19:48:57 +00:00
Eli Friedman
01321c3b8c
Clean up dead code from SemaInit landing.
...
llvm-svn: 52054
2008-06-06 19:40:52 +00:00
Devang Patel
8549e4ca07
LoopSimplify preserves AA.
...
llvm-svn: 52053
2008-06-06 17:50:58 +00:00
Devang Patel
656a917ad9
Print debug message only if there are dead passes.
...
llvm-svn: 52052
2008-06-06 17:50:36 +00:00
Ted Kremenek
5144fe2287
Because of a lack of a clear ownership role between ObjCInterfaceDecls and
...
ObjCPropertyDecls, have TranslationUnit destroy ObjCPropertyDecls. This is a
horrible hack, and must be removed eventually.
llvm-svn: 52051
2008-06-06 17:21:42 +00:00
Ted Kremenek
09a0d04ea0
Initial work on additional memory collection for ObjC AST objects. We now
...
have Destroy methods of ObjcMethodDecl and ObjCInterfaceDecl which recursively
destroy their owned Decls and Stmts. There are a few cases where it is not
clear what to do (FIXMEs included in the patch).
llvm-svn: 52050
2008-06-06 16:45:15 +00:00
Nuno Lopes
9b07b7b099
implement constant expr. sub ptr ptr
...
llvm-svn: 52049
2008-06-06 16:41:08 +00:00
Owen Anderson
f7647e432c
Include loop deletion and the ADCE rewrite in the release notes.
...
llvm-svn: 52048
2008-06-06 16:23:15 +00:00
Anton Korobeynikov
089018fb05
Testcase for PR2418
...
llvm-svn: 52047
2008-06-06 16:08:56 +00:00
Anton Korobeynikov
f69bc3df9b
Handle assembler identifiers specially in CBE. This fixes PR2418.
...
llvm-svn: 52046
2008-06-06 16:08:26 +00:00
Duncan Sands
f1123e58fc
Tighten up the abstraction slightly.
...
llvm-svn: 52045
2008-06-06 12:49:32 +00:00
Duncan Sands
13237ac3b9
Wrap MVT::ValueType in a struct to get type safety
...
and better control the abstraction. Rename the type
to MVT. To update out-of-tree patches, the main
thing to do is to rename MVT::ValueType to MVT, and
rewrite expressions like MVT::getSizeInBits(VT) in
the form VT.getSizeInBits(). Use VT.getSimpleVT()
to extract a MVT::SimpleValueType for use in switch
statements (you will get an assert failure if VT is
an extended value type - these shouldn't exist after
type legalization).
This results in a small speedup of codegen and no
new testsuite failures (x86-64 linux).
llvm-svn: 52044
2008-06-06 12:08:01 +00:00
Zhou Sheng
1152ca9101
As Chris suggested, handle the situation if ShAmt larger than BitWidth,
...
otherwise, opt might crash.
llvm-svn: 52041
2008-06-06 08:32:05 +00:00
Evan Cheng
6d7a144453
Refine stack slot interval weight computation.
...
llvm-svn: 52040
2008-06-06 07:54:39 +00:00
Anton Korobeynikov
5b3e396c24
Turn stdout into binary mode during bitcode emission.
...
This is necessary on windows targets, since stdout is in text mode there.
Patch by Julien Lerouge!
llvm-svn: 52038
2008-06-06 07:24:01 +00:00
Anton Korobeynikov
5e8644071d
Provide hooks for libgcc symbols' address resolution inside lli on mingw32.
...
Patch by Julien Lerouge!
llvm-svn: 52037
2008-06-06 07:20:07 +00:00
Bruno Cardoso Lopes
1a6e0d613f
Added custom isel for MUL, SDIVREM, UDIVREM, SMUL_LOHI and UMUL_LOHI nodes
...
MUL is not anymore directly matched because its a pseudoinstruction.
LogicI class fixed to zero-extend immediates.
llvm-svn: 52036
2008-06-06 06:37:31 +00:00
Devang Patel
8f5645cd51
During interface layout, don't forget super class.
...
llvm-svn: 52035
2008-06-06 02:14:01 +00:00
Devang Patel
e1f10511ba
Undo previous check-in.
...
llvm-svn: 52034
2008-06-06 02:00:35 +00:00
Devang Patel
1216b05d3d
During interface layout, don't forget super class.
...
llvm-svn: 52033
2008-06-06 01:50:12 +00:00
Ted Kremenek
3ad519441f
Fix crash when running with multiple source files. This can be improved.
...
llvm-svn: 52032
2008-06-06 01:47:30 +00:00
Bruno Cardoso Lopes
4eed3afda0
Added custom SELECT_CC lowering
...
Added special isel for ADDE,SUBE and new patterns to match SUBC,ADDC
llvm-svn: 52031
2008-06-06 00:58:26 +00:00
Dan Gohman
1d304a99d7
Revert 52002.
...
llvm-svn: 52030
2008-06-05 23:57:06 +00:00
Chris Lattner
3816aa7ef7
Expose a public interface to this pass.
...
llvm-svn: 52029
2008-06-05 23:45:18 +00:00
Chris Lattner
0282d0247e
Let libcall semantics decide whether it knows about functions
...
with definitions or not.
llvm-svn: 52028
2008-06-05 23:38:34 +00:00
Evan Cheng
c7007a7211
Warn of potential violations of strict aliasing rules.
...
llvm-svn: 52027
2008-06-05 23:00:08 +00:00
Evan Cheng
9e76c047d1
Don't break strict aliasing.
...
llvm-svn: 52026
2008-06-05 22:59:21 +00:00
Steve Naroff
d32ae8edf2
Oops...remove weird printf:-)
...
llvm-svn: 52025
2008-06-05 22:58:33 +00:00
Steve Naroff
946166f4e9
Second half of "fix" for <rdar://problem/5986085> clang on xcode: error: redefinition of 'XCElementToggler' as different kind of symbol
...
llvm-svn: 52024
2008-06-05 22:57:10 +00:00
Ted Kremenek
dfa8c8aef5
Ignore a few more linker arguments.
...
llvm-svn: 52023
2008-06-05 22:46:24 +00:00
Devang Patel
33aac00892
Describe loop index split.
...
llvm-svn: 52021
2008-06-05 21:44:00 +00:00
Dan Gohman
ae408aa83f
Wording fixes. Thanks Bill!
...
llvm-svn: 52017
2008-06-05 18:45:33 +00:00
Owen Anderson
05d1cd99b3
Remove debugging code.
...
llvm-svn: 52016
2008-06-05 18:43:34 +00:00
Gabor Greif
80ae8a7194
fix typos, tweak stuff, make it to validate
...
llvm-svn: 52015
2008-06-05 18:39:01 +00:00