- Aug 14, 2012
-
-
Anna Zaks authored
llvm-svn: 161819
-
Jordan Rose authored
This allows us to store type info for non-symbolic regions. No functionality change. llvm-svn: 161811
-
Jordan Rose authored
While there is now some duplication between SimpleCall and the CXXInstanceCall sub-hierarchy, this is much better than copy-and-pasting the devirtualization logic shared by both instance methods and destructors. An unfortunate side effect is that there is no longer a single CallEvent type that corresponds to "calls written as CallExprs". For the most part this is a good thing, but the checker callback eval::Call still takes a CallExpr rather than a CallEvent (since we're not sure if we want to allow checkers to evaluate other kinds of calls). A mistake here will be caught by a cast<> in CheckerManager::runCheckersForEvalCall. No functionality change. llvm-svn: 161809
-
Jordan Rose authored
Virtual base regions are never layered, so simply stripping them off won't necessarily get you to the correct casted class. Instead, what we want is the same logic for evaluating dynamic_cast: strip off base regions if possible, but add new base regions if necessary. llvm-svn: 161808
-
Owen Anderson authored
Add a roundToIntegral method to APFloat, which can be parameterized over various rounding modes. Use this to implement SelectionDAG constant folding of FFLOOR, FCEIL, and FTRUNC. llvm-svn: 161807
-
Johnny Chen authored
Change the test case, too. llvm-svn: 161806
-
Jakob Stoklund Olesen authored
llvm-svn: 161805
-
Jakob Stoklund Olesen authored
llvm-svn: 161804
-
Nadav Rotem authored
LICM uses AliasSet information to hoist and sink instructions. However, other passes, such as LoopRotate may invalidate its AliasSet because SSAUpdater does not update the AliasSet properly. This patch teaches SSAUpdater to notify AliasSet that it made changes. The testcase in PR12901 is too big to be useful and I could not reduce it to a normal size. rdar://11872059 PR12901 llvm-svn: 161803
-
Nadav Rotem authored
Currently, if GetLocation reports that it did not find a valid pointer (this is the case for volatile load/stores), we ignore the result. This patch adds code to handle the cases where we did not obtain a valid pointer. rdar://11872864 PR12899 llvm-svn: 161802
-
Jim Grosbach authored
These tests weren't actually being run before (missing ':' after CHECK). llvm-svn: 161800
-
Jordan Rose authored
This can occur with multiple inheritance, which jumps from one parent to the other, and with virtual inheritance, since virtual base regions always wrap the actual object and can't be nested within other base regions. This also exposed some incorrect logic for multiple inheritance: even if B is known not to derive from C, D might still derive from both of them. llvm-svn: 161798
-
Jordan Rose authored
...and /do/ strip CXXBaseObjectRegions when casting to a virtual base class. This allows us to enforce the invariant that a CXXBaseObjectRegion can always provide an offset for its base region if its base region has a known class type, by only allowing virtual bases and direct non-virtual bases to form CXXBaseObjectRegions. This does mean some slight problems for our modeling of dynamic_cast, which needs to be resolved by finding a path from the current region to the class we're trying to cast to. llvm-svn: 161797
-
Chad Rosier authored
llvm-svn: 161796
-
- Aug 13, 2012
-
-
Jason Molenda authored
return 0x0 as the read value instead of uninitialized stack data so we get consistent behavior from the emulator. <rdar://problem/12058770> llvm-svn: 161795
-
Jakob Stoklund Olesen authored
It never does anything when running 'make check', and it get's in the way of updating live intervals in 2-addr. The hook was originally added to help form IT blocks in Thumb2 code before register allocation, but the pass ordering has changed since then, and we run if-conversion after register allocation now. When the MI scheduler is enabled, there will be no less than two schedulers between 2-addr and Thumb2ITBlockPass, so this hook is unlikely to help anything. llvm-svn: 161794
-
Chad Rosier authored
llvm-svn: 161793
-
Bill Wendling authored
llvm-svn: 161792
-
Richard Smith authored
forgot to set it as being instantiation-dependent as well as being type- and value-dependent. llvm-svn: 161791
-
Manman Ren authored
rdar://9877866 llvm-svn: 161790
-
Manman Ren authored
This change is to be enabled in clang. rdar://9877866 llvm-svn: 161789
-
Bill Wendling authored
llvm-svn: 161788
-
Johnny Chen authored
llvm-svn: 161787
-
Fariborz Jahanian authored
per Richard's comment. llvm-svn: 161786
-
Johnny Chen authored
Record the snapshot of our watched value when the watchpoint is set or hit. And report the old/new values when watchpoint is triggered. Add some test scenarios. llvm-svn: 161785
-
Jakob Stoklund Olesen authored
llvm-svn: 161783
-
Jakob Stoklund Olesen authored
llvm-svn: 161782
-
Jakob Stoklund Olesen authored
It is still possible to if-convert if the tail block has extra predecessors, but the tail phis must be rewritten instead of being removed. llvm-svn: 161781
-
Chad Rosier authored
The AsmParser expects a single asm instruction, but valid ms-style inline asm statements may contain multiple instructions. This happens with asm blocks __asm { mov ebx, eax mov ecx, ebx } or when multiple asm statements are adjacent to one another __asm mov ebx, eax __asm mov ecx, ebx and __asm mov ebx, eax __asm mov ecx, ebx Currently, asm blocks are not properly handled. llvm-svn: 161780
-
Richard Smith authored
evaluated into a CXXTypeid member function. No functionality change. llvm-svn: 161779
-
Arnold Schwaighofer authored
This was causing unnecessary spills/restores of callee saved registers. Fixes PR13572. Patch by Pranav Bhandarkar! llvm-svn: 161778
-
Manman Ren authored
llvm-svn: 161777
-
Marshall Clow authored
llvm-svn: 161776
-
Nadav Rotem authored
Do not optimize (or (and X,Y), Z) into BFI and other sequences if the AND ISDNode has more than one user. rdar://11876519 llvm-svn: 161775
-
rdar://problem/12087275Greg Clayton authored
Make the crashlog parser able to deal with spaces in the process name. llvm-svn: 161772
-
Dmitry Vyukov authored
llvm-svn: 161770
-
Manman Ren authored
OpTbl1 to OpTbl2 since they have 3 operands and the last operand can be changed to a memory operand. PR13576 llvm-svn: 161769
-
Eric Christopher authored
Patch by Weiming Zhao. llvm-svn: 161768
-
Fariborz Jahanian authored
function attribute. // rdar://10253857 llvm-svn: 161767
-
David Blaikie authored
llvm-svn: 161766
-