- Aug 28, 2010
-
-
Chris Lattner authored
A = shl x, 42 ... B = lshr ..., 38 which can be transformed into: A = shl x, 4 ... iff we can prove that the would-be-shifted-in bits are already zero. This eliminates two shifts in the testcase and allows eliminate of the whole i128 chain in the real example. llvm-svn: 112314
-
Tom Care authored
Added checking of (x == x) and (x != x) to IdempotentOperationChecker and updated test cases flagged by it. llvm-svn: 112313
-
Tom Care authored
Enabled relaxed LiveVariables analysis in the path-sensitive engine to increase the coverage of bugs. Primarily affects IdempotentOperationChecker. - Migrated a temporarily separated test back to its original file (bug has been fixed, null-deref-ps-temp.c -> null-deref-ps.c) - Changed SymbolManager to use relaxed LiveVariables - Updated several test cases that the IdempotentOperationChecker class now flags - Added test case to test relaxed LiveVariables use by the IdempotentOperationChecker llvm-svn: 112312
-
Johnny Chen authored
llvm-svn: 112311
-
Tom Care authored
llvm-svn: 112310
-
Tom Care authored
llvm-svn: 112309
-
Johnny Chen authored
o Fixed a crasher when getting it via SBTarget.GetExecutable(). >>> filespec = target.GetExecutable() Segmentation fault o And renamed SBFileSpec::GetFileName() to GetFilename() to be consistent with FileSpec::GetFilename(). llvm-svn: 112308
-
-
Tom Care authored
Add alternate version of LiveVariables analysis that does not kill liveness at assignments. This 'relaxed' liveness is useful in path sensitive analysis for situations where the resulting extended liveness allows us to find some bugs. - Added killAtAssign flag to LiveVariables - Added relaxed LiveVariables to AnalysisContext with an accessor llvm-svn: 112306
-
Devang Patel authored
llvm-svn: 112305
-
Chris Lattner authored
framework, which is good at ripping through bitfield operations. This generalize a bunch of the existing xforms that instcombine does, such as (x << c) >> c -> and to handle intermediate logical nodes. This is useful for ripping up the "promote to large integer" code produced by SRoA. llvm-svn: 112304
-
- Aug 27, 2010
-
-
Ted Kremenek authored
llvm-svn: 112303
-
Bob Wilson authored
llvm-svn: 112302
-
Greg Clayton authored
swaps on the variable list, value object list, and disassembly. This avoids us having to try and update frame indexes and other things that were getting out of sync. llvm-svn: 112301
-
Bob Wilson authored
llvm-svn: 112300
-
Dan Gohman authored
adjacent operands at once, instead of just two at a time. llvm-svn: 112299
-
Douglas Gregor authored
Improve wording of diagnostic complaining about a non-void* pointer as the first parameter of operator delete llvm-svn: 112298
-
Eric Christopher authored
Patch by Cameron Esfahani! llvm-svn: 112297
-
Ted Kremenek authored
Implement CXCursor support for walking C++ base specifiers. This includes adding the API hooks clang_isVirtualBase() and clang_getCXXAccessSpecifier() to query properties of the base specifier. Implements <rdar://problem/8274883>. llvm-svn: 112296
-
Ted Kremenek authored
llvm-svn: 112295
-
Douglas Gregor authored
member function you're typing in overrides another virtual function, this fills in a (qualified!) call to that virtual function to make such delegation easy. llvm-svn: 112294
-
Johnny Chen authored
llvm-svn: 112293
-
Douglas Gregor authored
llvm-svn: 112292
-
Chris Lattner authored
more general simplify demanded bits logic. llvm-svn: 112291
-
Dan Gohman authored
transformation collect all the addrecs with the same loop add combine them at once rather than starting everything over at the first chance. llvm-svn: 112290
-
Chris Lattner authored
llvm-svn: 112289
-
Chris Lattner authored
llvm-svn: 112288
-
Bill Wendling authored
llvm-svn: 112287
-
Owen Anderson authored
llvm-svn: 112286
-
Chris Lattner authored
computation can be truncated if it is fed by a sext/zext that doesn't have to be exactly equal to the truncation result type. llvm-svn: 112285
-
Howard Hinnant authored
llvm-svn: 112284
-
Chris Lattner authored
llvm-svn: 112283
-
John McCall authored
we don't see a DeclStmt (failure to instantiate which generally causes panic). llvm-svn: 112282
-
Dan Gohman authored
to DenseMap. llvm-svn: 112281
-
Chris Lattner authored
llvm-svn: 112280
-
Chris Lattner authored
by the SRoA "promote to large integer" code, eliminating some type conversions like this: %94 = zext i16 %93 to i32 ; <i32> [#uses=2] %96 = lshr i32 %94, 8 ; <i32> [#uses=1] %101 = trunc i32 %96 to i8 ; <i8> [#uses=1] This also unblocks other xforms from happening, now clang is able to compile: struct S { float A, B, C, D; }; float foo(struct S A) { return A.A + A.B+A.C+A.D; } into: _foo: ## @foo ## BB#0: ## %entry pshufd $1, %xmm0, %xmm2 addss %xmm0, %xmm2 movdqa %xmm1, %xmm3 addss %xmm2, %xmm3 pshufd $1, %xmm1, %xmm0 addss %xmm3, %xmm0 ret on x86-64, instead of: _foo: ## @foo ## BB#0: ## %entry movd %xmm0, %rax shrq $32, %rax movd %eax, %xmm2 addss %xmm0, %xmm2 movapd %xmm1, %xmm3 addss %xmm2, %xmm3 movd %xmm1, %rax shrq $32, %rax movd %eax, %xmm0 addss %xmm3, %xmm0 ret This seems pretty close to optimal to me, at least without using horizontal adds. This also triggers in lots of other code, including SPEC. llvm-svn: 112278
-
Greg Clayton authored
instead of trying to maintain the real frame list (unwind frames) and an inline frame list. The information is cheap to produce when we already have looked up a block and was making stack frame uniquing difficult when trying to use the previous stack when making the current stack. We now maintain the previous value object lists for common frames between a previous and current frames so we will be able to tell when variable values change. llvm-svn: 112277
-
Johnny Chen authored
and process. Added comment within the file about issues of using LaunchProcess of SBTarget to launch a process (rdar://problem/8364687). llvm-svn: 112276
-
Devang Patel authored
Patch originally by Alexander Herz. llvm-svn: 112275
-
Douglas Gregor authored
declarator, the very definition of "low-hanging fruit". llvm-svn: 112274
-