- Apr 23, 2008
-
-
Anton Korobeynikov authored
llvm-svn: 50156
-
Anton Korobeynikov authored
llvm-svn: 50155
-
Anton Korobeynikov authored
llvm-svn: 50154
-
Anton Korobeynikov authored
llvm-svn: 50153
-
Anton Korobeynikov authored
llvm-svn: 50152
-
Dan Gohman authored
llvm-svn: 50151
-
Ted Kremenek authored
when it is constructed via deserialization. This is done by recording a flag indicating that this is the case, and it deletes these objects by getting the references stored in the ASTContext object. This fixes some memory leaks that occurs when we deserialize translation units from bitcode files. The rationale between having TranslationUnit sometimes own these objects and sometimes not is that a TranslationUnit object can be constructed from state generated by the parser (Preprocessor; semantic analyzer, etc.), and thus in these cases won't own the IdentifierTable or Selectors, etc. During deserialization, there is no Preprocessor, so somebody needs to own these objects in order for them to be properly reclaimed. llvm-svn: 50149
-
Bill Wendling authored
have public constructors. This should fix PR2246. llvm-svn: 50145
-
Chris Lattner authored
callees. llvm-svn: 50142
-
Chris Lattner authored
fix read after free bug (PR2238). llvm-svn: 50141
-
Chris Lattner authored
would turn every getresult instruction into undef. This helps with rdar://5778210 llvm-svn: 50140
-
Chris Lattner authored
llvm-svn: 50139
-
Chris Lattner authored
logic with vmcore. llvm-svn: 50138
-
Chris Lattner authored
llvm-svn: 50137
-
Chris Lattner authored
of -std-compile-opts and is now failing because other passes are generating IR that looks different to input of loop rotate. Devang, please introduce a testcase that only runs loop rotate. llvm-svn: 50136
-
Chris Lattner authored
llvm-svn: 50135
-
Ted Kremenek authored
always be taken even if it was not feasible. llvm-svn: 50132
-
Chris Lattner authored
values. Clarify that it is impossible to 'multiply return' a struct with zero elements. llvm-svn: 50131
-
Chris Lattner authored
llvm-svn: 50130
-
Chris Lattner authored
call/invoke or undef. llvm-svn: 50129
-
Chris Lattner authored
llvm-svn: 50128
-
Chris Lattner authored
llvm-svn: 50126
-
Chris Lattner authored
llvm-svn: 50125
-
Dale Johannesen authored
llvm-svn: 50123
-
Dale Johannesen authored
type of a different size. llvm-svn: 50121
-
Ted Kremenek authored
llvm-svn: 50119
-
Evan Cheng authored
Don't do: "(X & 4) >> 1 == 2 --> (X & 4) == 4" if there are more than one uses of the shift result. llvm-svn: 50118
-
Fariborz Jahanian authored
to print declaration from its AST. llvm-svn: 50117
-
Ted Kremenek authored
the line we are going to. llvm-svn: 50113
-
Ted Kremenek authored
llvm-svn: 50112
-
- Apr 22, 2008
-
-
Chris Lattner authored
where a comparison has a phi input and that phi is a constant. For example, stuff like: Threading edge through bool from 'bb2149' to 'bb2231' with cost: 1, across block: bb2237: ; preds = %bb2231, %bb2149 %tmp2328.rle = phi i32 [ %tmp2232, %bb2231 ], [ %tmp2232439, %bb2149 ] ; <i32> [#uses=2] %done.0 = phi i32 [ %done.2, %bb2231 ], [ 0, %bb2149 ] ; <i32> [#uses=1] %tmp2239 = icmp eq i32 %done.0, 0 ; <i1> [#uses=1] br i1 %tmp2239, label %bb2231, label %bb2327 or bb38.i298: ; preds = %bb33.i295, %bb1693 %tmp39.i296.rle = phi %struct.ibox* [ null, %bb1693 ], [ %tmp39.i296.rle1109, %bb33.i295 ] ; <%struct.ibox*> [#uses=2] %minspan.1.i291.reg2mem.1 = phi i32 [ 32000, %bb1693 ], [ %minspan.0.i288, %bb33.i295 ] ; <i32> [#uses=1] %tmp40.i297 = icmp eq %struct.ibox* %tmp39.i296.rle, null ; <i1> [#uses=1] br i1 %tmp40.i297, label %implfeeds.exit311, label %bb43.i301 This triggers thousands of times in spec. llvm-svn: 50110
-
Ted Kremenek authored
llvm-svn: 50109
-
Ted Kremenek authored
Added "nonlval::LValAsInteger" to represent abstract LVals casted to integers, allowing us to track lvals when they are casted back to pointers. llvm-svn: 50108
-
Chris Lattner authored
llvm-svn: 50106
-
Chris Lattner authored
DeclContext *CtxDecl -> DeclContext *DeclCtx DeclContext *CD -> DeclContext *DC It makes the code more consistent." Patch by Zhongxing Xu! llvm-svn: 50105
-
Ted Kremenek authored
them to not be stack-allocated. HTMLDiagnostics now batches PathDiagnostics before emitting HTML in its dtor. This is a workaround for a problem when we trampled the Preprocessor state when highlighting macros (sometimes resulting in an assertion failure). llvm-svn: 50102
-
Argyrios Kyrtzidis authored
llvm-svn: 50098
-
Owen Anderson authored
llvm-svn: 50097
-
Chris Lattner authored
br (and X, phi(Y, Z, false)), label L1, label L2 This triggers once on 252.eon and 6 times on 176.gcc. Blocks in question often look like this: bb262: ; preds = %bb261, %bb248 %iftmp.251.0 = phi i1 [ true, %bb261 ], [ false, %bb248 ] ; <i1> [#uses=4] %tmp270 = icmp eq %struct.rtx_def* %tmp.0.i, null ; <i1> [#uses=1] %bothcond = or i1 %iftmp.251.0, %tmp270 ; <i1> [#uses=1] br i1 %bothcond, label %bb288, label %bb273 In this case, it is clear that it doesn't matter if tmp.0.i is null when coming from bb261. When coming from bb248, it is all that matters. Another random example: check_asm_operands.exit: ; preds = %check_asm_operands.exit.thr_comm, %bb30.i, %bb12.i, %bb6.i413 %tmp.0.i420 = phi i1 [ true, %bb6.i413 ], [ true, %bb12.i ], [ true, %bb30.i ], [ false, %check_asm_operands.exit.thr_comm ; <i1> [#uses=1] call void @llvm.stackrestore( i8* %savedstack ) nounwind %tmp4389 = icmp eq i32 %added_sets_1.0, 0 ; <i1> [#uses=1] %tmp4394 = icmp eq i32 %added_sets_2.0, 0 ; <i1> [#uses=1] %bothcond80 = and i1 %tmp4389, %tmp4394 ; <i1> [#uses=1] %bothcond81 = and i1 %bothcond80, %tmp.0.i420 ; <i1> [#uses=1] br i1 %bothcond81, label %bb4398, label %bb4397 Here is the case from 252.eon: bb290.i.i: ; preds = %bb23.i57.i.i, %bb8.i39.i.i, %bb100.i.i, %bb100.i.i, %bb85.i.i110 %myEOF.1.i.i = phi i1 [ true, %bb100.i.i ], [ true, %bb100.i.i ], [ true, %bb85.i.i110 ], [ true, %bb8.i39.i.i ], [ false, %bb23.i57.i.i ] ; <i1> [#uses=2] %i.4.i.i = phi i32 [ %i.1.i.i, %bb85.i.i110 ], [ %i.0.i.i, %bb100.i.i ], [ %i.0.i.i, %bb100.i.i ], [ %i.3.i.i, %bb8.i39.i.i ], [ %i.3.i.i, %bb23.i57.i.i ] ; <i32> [#uses=3] %tmp292.i.i = load i8* %tmp16.i.i100, align 1 ; <i8> [#uses=1] %tmp293.not.i.i = icmp ne i8 %tmp292.i.i, 0 ; <i1> [#uses=1] %bothcond.i.i = and i1 %tmp293.not.i.i, %myEOF.1.i.i ; <i1> [#uses=1] br i1 %bothcond.i.i, label %bb202.i.i, label %bb301.i.i Factoring out 3 common predecessors. On the path from any blocks other than bb23.i57.i.i, the load and compare are dead. llvm-svn: 50096
-
Evan Cheng authored
llvm-svn: 50095
-