Sebastian Redl
e10c2c32af
Implement checks for bool in increment and decrement.
...
llvm-svn: 61275
2008-12-20 09:35:34 +00:00
Zhongxing Xu
af7415ffb1
Lazy bingding for region-store manager.
...
* Now Bind() methods take and return GRState* because binding could
also alter GDM.
* No variables are initialized except those declared with initial
values.
* failed C test cases are due to bugs in RemoveDeadBindings(),
which removes constraints that is still alive. This will be fixed in later
patch.
* default value of array and struct regions will be implemented in later patch.
llvm-svn: 61274
2008-12-20 06:32:12 +00:00
Ted Kremenek
ab66b87f7f
Updated checker build.
...
llvm-svn: 61273
2008-12-20 02:16:48 +00:00
Ted Kremenek
7d002beb5b
Fix <rdar://problem/6454568>: BugReporter should correctly handle switch statements with no default case.
...
llvm-svn: 61270
2008-12-20 01:41:43 +00:00
Chris Lattner
9fa1552ca8
avoid using a typedef that isn't always included from headers.
...
llvm-svn: 61269
2008-12-19 23:51:20 +00:00
Fariborz Jahanian
1d35f12e6b
More encoding support. This time for
...
@encode of classes and bitfields.
llvm-svn: 61268
2008-12-19 23:34:38 +00:00
Bill Wendling
7be667c075
More precise XFAIL.
...
llvm-svn: 61265
2008-12-19 22:28:23 +00:00
Bill Wendling
be2a77f52c
Un-XFAIL this test because it's passing and John doesn't seem interested in un-XFAILing it.
...
llvm-svn: 61264
2008-12-19 22:25:01 +00:00
Dan Gohman
650b1e7ff8
Use ~0u instead of -1u as the special value, to hopefully avoid
...
warnings on compilers that warn about such things.
llvm-svn: 61263
2008-12-19 22:23:43 +00:00
Anders Carlsson
6736d1a2bb
Get rid of the old Expr::Evaluate variant.
...
llvm-svn: 61260
2008-12-19 20:58:05 +00:00
Evan Cheng
0869f78555
Fix PR3149. If an early clobber def is a physical register and it is tied to an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this.
...
172 %ECX<def> = MOV32rr %reg1039<kill>
180 INLINEASM <es:subl $5,$1
sbbl $3,$0>, 10, %EAX<def>, 14, %ECX<earlyclobber,def>, 9, %EAX<kill>,
36, <fi#0>, 1, %reg0, 0, 9, %ECX<kill>, 36, <fi#1>, 1, %reg0, 0
188 %EAX<def> = MOV32rr %EAX<kill>
196 %ECX<def> = MOV32rr %ECX<kill>
204 %ECX<def> = MOV32rr %ECX<kill>
212 %EAX<def> = MOV32rr %EAX<kill>
220 %EAX<def> = MOV32rr %EAX
228 %reg1039<def> = MOV32rr %ECX<kill>
The early clobber operand ties ECX input to the ECX def.
The live interval of ECX is represented as this:
%reg20,inf = [46,47:1)[174,230:0) 0@174-(230) 1@46-(47)
The right way to represent this is something like
%reg20,inf = [46,47:2)[174,182:1)[181:230:0) 0@174-(182) 1@181-230 @2@46-(47)
Of course that won't work since that means overlapping live ranges defined by two val#.
The workaround for now is to add a bit to val# which says the val# is redefined by a early clobber def somewhere. This prevents the move at 228 from being optimized away by SimpleRegisterCoalescing::AdjustCopiesBackFrom.
llvm-svn: 61259
2008-12-19 20:58:01 +00:00
Anders Carlsson
091134785d
Pass -fblocks to clang
...
llvm-svn: 61258
2008-12-19 20:56:23 +00:00
John Criswell
8dd90a7245
The fields for the stoppoint debug intrinsic have not changed, so update the
...
version number assertions.
llvm-svn: 61257
2008-12-19 19:56:36 +00:00
Douglas Gregor
6ab9978b66
Add a missing @end . Why didn't this get diagnosed?
...
llvm-svn: 61256
2008-12-19 19:16:37 +00:00
Douglas Gregor
a119f10482
Support more implicit conversions for Objective-C types. Addresses <rdar://problem/6458293>.
...
llvm-svn: 61255
2008-12-19 19:13:09 +00:00
Bill Wendling
dc2b987abb
This test works again for Darwin because a patch was reverted.
...
llvm-svn: 61254
2008-12-19 19:08:13 +00:00
Gordon Henriksen
05a868f7af
Add dyn_cast_or_null bindings for some additional classes missed in r61252.
...
llvm-svn: 61253
2008-12-19 18:51:17 +00:00
Gordon Henriksen
29e3894e7d
C bindings for dyn_cast_or_null.
...
This operation can be used to build dyn_cast, isa, and cast.
llvm-svn: 61252
2008-12-19 18:39:45 +00:00
Chris Lattner
af4c0bf44f
Add support for writing LLVM IR to a specified BitstreamWriter.
...
Patch by Lukasz Janyst!
llvm-svn: 61251
2008-12-19 18:37:59 +00:00
Dan Gohman
b289d4163b
Move the patterns which have i8 immediates before the patterns
...
that have i32 immediates so that they get selected first. This
currently only matters in the JIT, as assemblers will
automatically use the smallest encoding.
llvm-svn: 61250
2008-12-19 18:25:21 +00:00
Dan Gohman
f1fb65c747
Use dyn_cast intead of isa + cast in the generated DAGISel code. This
...
reduces the amount of code slightly when assertions are enabled.
llvm-svn: 61249
2008-12-19 18:13:39 +00:00
Evan Cheng
3b3de7c228
- CodeGenPrepare does not split loop back edges but it only knows about back edges of single block loops. It now does a DFS walk to find loop back edges.
...
- Use SplitBlockPredecessors to factor out common predecessors of the critical edge destination. This is disabled for now due to some regressions.
llvm-svn: 61248
2008-12-19 18:03:11 +00:00
Fariborz Jahanian
8c036a3af4
Test case for my last @encode patch.
...
llvm-svn: 61247
2008-12-19 17:45:06 +00:00
Douglas Gregor
47d3f2742a
Allow downcasts of pointers to Objective-C interfaces, with a
...
warning. This matches GCC's behavior and addresses
<rdar://problem/6458293>.
llvm-svn: 61246
2008-12-19 17:40:08 +00:00
Anders Carlsson
324de7ba46
Fix for PR3234
...
llvm-svn: 61245
2008-12-19 17:27:57 +00:00
Chris Lattner
9c148c8fc2
Fix some release-assert warnings
...
llvm-svn: 61244
2008-12-19 17:03:38 +00:00
Rafael Espindola
770b4b830a
Fix bug 3202.
...
The EH_frame and .eh symbols are now private, except for darwin9 and earlier.
The patch also fixes the definition of PrivateGlobalPrefix on pcc linux.
llvm-svn: 61242
2008-12-19 10:55:56 +00:00
Nick Lewycky
3cde35175c
Update the .cvs files for nocapture.
...
llvm-svn: 61241
2008-12-19 09:41:54 +00:00
Nick Lewycky
8d69f48833
Commit missed files from nocapture change.
...
llvm-svn: 61240
2008-12-19 09:38:31 +00:00
Nick Lewycky
2abb108f1b
Resubmit support for the 'nocapture' attribute.
...
The problematic part of this patch is that we were out of attribute bits,
requiring some fancy bit hacking to make it fit (by shrinking alignment)
without breaking existing users or the file format.
This change will require users to rebuild llvm-gcc to match llvm.
llvm-svn: 61239
2008-12-19 06:39:12 +00:00
Bill Wendling
19a54ffc7f
Perform this loop only when the -debug flag is specified.
...
llvm-svn: 61238
2008-12-19 02:09:57 +00:00
Dan Gohman
8c82a8a984
Initialize the ImplicitDefed member, to avoid getting stale
...
data from a previous block.
llvm-svn: 61237
2008-12-19 00:46:20 +00:00
Dan Gohman
b4c55bb857
Fix RegScavenger::forward() to work on basic blocks containing exactly
...
one instruction.
llvm-svn: 61236
2008-12-19 00:45:13 +00:00
Dan Gohman
4293cea3e5
Delete the RegScavenging constructor that takes a MachineBasicBlock
...
argument. Nothing was using it, and it set the MBB member without
calling enterBasicBlock, which was problematic.
llvm-svn: 61234
2008-12-19 00:34:32 +00:00
Ted Kremenek
dde7df9de2
Updated checker build.
...
llvm-svn: 61233
2008-12-19 00:19:19 +00:00
Fariborz Jahanian
781c5c879c
Several@encode bug fixes for ObjC.
...
llvm-svn: 61231
2008-12-19 00:14:49 +00:00
Ted Kremenek
4e15d97ae4
Update Xcode project.
...
llvm-svn: 61230
2008-12-19 00:03:48 +00:00
Douglas Gregor
1e57a3fb46
Add some more implicit conversions for Objective-C++
...
llvm-svn: 61229
2008-12-18 23:43:31 +00:00
Mon P Wang
308a1acaaf
Fix test to account for generating some vector code for mul v2i64 instead
...
of incorrectly generating pmuldq
llvm-svn: 61228
2008-12-18 23:42:37 +00:00
Ted Kremenek
021752ab4e
Added test case for suppressing leak warnings for reference-counted objects passed by-reference to an unknown function.
...
llvm-svn: 61227
2008-12-18 23:40:58 +00:00
Ted Kremenek
5b26c11f56
Fix regression when invalidating reference-counts for objects passed-by-reference to a function/method.
...
llvm-svn: 61224
2008-12-18 23:34:57 +00:00
Steve Naroff
1ef21279b6
Don't define __STDC__ when compiling with -fms-extensions
...
llvm-svn: 61223
2008-12-18 22:37:25 +00:00
Bill Wendling
070de29fcf
Didn't mean to commit this.
...
llvm-svn: 61222
2008-12-18 22:19:50 +00:00
Dan Gohman
9abd04bf3f
Teach LowerSubregs to preserve kill/dead information when lowering
...
subreg instructions.
llvm-svn: 61220
2008-12-18 22:14:08 +00:00
Bill Wendling
4c13e77d49
Re-XFAIL this test until debug stuff settles down.
...
llvm-svn: 61219
2008-12-18 22:13:31 +00:00
Dan Gohman
c4ce336205
Make LowerSubregs' debug output for EXTRACT_SUBREG consistent with
...
that of INSERT_SUBREG and SUBREG_TO_REG.
llvm-svn: 61218
2008-12-18 22:11:34 +00:00
Dan Gohman
d38c00c85b
Fix a copy+pasto in an assertion message.
...
llvm-svn: 61217
2008-12-18 22:07:25 +00:00
Dan Gohman
451afdd9fe
Fix indentation level.
...
llvm-svn: 61216
2008-12-18 22:06:01 +00:00
Dan Gohman
69cd963b9a
When emitting instructions that define EFLAGS and the EFLAGS value isn't
...
used, mark the defs as dead.
llvm-svn: 61215
2008-12-18 22:03:42 +00:00
Dan Gohman
975f78ae79
When setting up the frame pointer, add it as a live-in register to all
...
non-entry blocks, so that it doesn't appear use-before-def anywhere.
llvm-svn: 61214
2008-12-18 22:01:52 +00:00