summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Devirtualize calls on glvalues produced by class member access expressions.Richard Smith2012-08-152-1/+25
| | | | | | Based on a patch by Yin Ma! llvm-svn: 161998
* Thread safety analysis: prevent a compiler error in cases where aDeLesley Hutchins2012-08-152-1/+12
| | | | | | late-parsed attribute is attached to an invalid declaration. llvm-svn: 161997
* bug in experimental targetsVictor Oliveira2012-08-151-6/+6
| | | | llvm-svn: 161995
* Fold predicable instructions into MOVCC / t2MOVCC.Jakob Stoklund Olesen2012-08-157-3/+165
| | | | | | | | | | | | | | The ARM select instructions are just predicated moves. If the select is the only use of an operand, the instruction defining the operand can be predicated instead, saving one instruction and decreasing register pressure. This implementation can turn AND/ORR/EOR instructions into their corresponding ANDCC/ORRCC/EORCC variants. Ideally, we should be able to predicate any instruction, but we don't yet support predicated instructions in SSA form. llvm-svn: 161994
* rdar://problem/12096295Johnny Chen2012-08-154-9/+36
| | | | | | | Add an lldb command line option to specify a core file: --core/-c. For consistency, change the "target create" command to also use --core. llvm-svn: 161993
* [analyzer] If we call a C++ method on an object, assume it's non-null.Jordan Rose2012-08-153-8/+38
| | | | | | | | | | | | | | | | | | | | This is analogous to our handling of pointer dereferences: if we dereference a pointer that may or may not be null, we assume it's non-null from then on. While some implementations of C++ (including ours) allow you to call a non-virtual method through a null pointer of object type, it is technically disallowed by the C++ standard, and should not prune out any real paths in practice. [class.mfct.non-static]p1: A non-static member function may be called for an object of its class type, or for an object of a class derived from its class type... (a null pointer value does not refer to an object) We can also make the same assumption about function pointers. llvm-svn: 161992
* [ms-inline asm] Use a set container to remove redundant clobbers.Chad Rosier2012-08-152-7/+8
| | | | llvm-svn: 161991
* Remove dead flag.Bill Wendling2012-08-151-9/+3
| | | | llvm-svn: 161990
* Rework test so that it reproduces the error without the horrible flag.Bill Wendling2012-08-151-8/+2
| | | | llvm-svn: 161989
* [ms-inline asm] Address a FIXME by computing the number of asm statements whenChad Rosier2012-08-151-10/+7
| | | | | | building the AsmString. llvm-svn: 161988
* [analyzer] Even if we are not inlining a virtual call, still invalidate!Jordan Rose2012-08-152-1/+30
| | | | | | Fixes a mistake introduced in r161916. llvm-svn: 161987
* [ms-inline asm] MSVC parses multiple __asm statements on a single line as oneChad Rosier2012-08-154-20/+33
| | | | | | | | | | | | statement. For example, if (x) __asm out dx, ax __asm out dx, ax results in a single inline asm statement (i.e., both "out dx, ax" statements are predicated on if(x)). llvm-svn: 161986
* Remove invalid test. This test requires that dead basic blocks be keptBill Wendling2012-08-151-19/+0
| | | | | | | | | | | | | | | around. That's not how we do things. Besides, the commit message tells us that it is covered by the GCC test suite. ------------------------------------------------------------------------ r127497 | zwarich | 2011-03-11 13:51:56 -0800 (Fri, 11 Mar 2011) | 3 lines Fix the GCC test suite issue exposed by r127477, which was caused by stack protector insertion not working correctly with unreachable code. Since that revision was rolled out, this test doesn't actual fail before this fix. ------------------------------------------------------------------------ llvm-svn: 161985
* Fixed a problem in the JIT memory allocator whereSean Callanan2012-08-151-0/+3
| | | | | | | | | | allocations of executable memory would not be padded to account for the size of the allocation header. This resulted in undersized allocations, meaning that when the allocation was written to later the next allocation's header would be corrupted. llvm-svn: 161984
* Add a CoveringSubRegIndices field to SubRegIndex records.Jakob Stoklund Olesen2012-08-152-9/+40
| | | | | | | This can be used to tell TableGen to use a specific SubRegIndex instead of synthesizing one when discovering all sub-registers. llvm-svn: 161982
* [analyzer] Correctly devirtualize virtual method calls in constructors.Jordan Rose2012-08-156-28/+141
| | | | | | | | | This is the other half of C++11 [class.cdtor]p4 (the destructor side was added in r161915). This also fixes an issue with post-call checks where the 'this' value was already being cleaned out of the state, thus being omitted from a reconstructed CXXConstructorCall. llvm-svn: 161981
* Allow 'static' and type qualifiers in K&R parameter type lists.Matt Beaumont-Gay2012-08-152-1/+6
| | | | llvm-svn: 161980
* Properly test the LLVM_USE_RVALUE_REFERENCES macro.Michael J. Spencer2012-08-151-1/+1
| | | | llvm-svn: 161979
* Properly test the LLVM_USE_RVALUE_REFERENCES macro.Michael J. Spencer2012-08-153-3/+3
| | | | llvm-svn: 161978
* [ms-inline asm] Don't emit newlines as these are ignored by the AsmParserChad Rosier2012-08-151-4/+1
| | | | | | anyways. Also, simplify some conditional logic. llvm-svn: 161977
* [PathV2] Add mapped_file_region. Implementation for Windows and POSIX.Michael J. Spencer2012-08-154-26/+421
| | | | llvm-svn: 161976
* Add LLVM_DELETED_FUNCTION compatibility macro.Michael J. Spencer2012-08-151-0/+19
| | | | | | | | | | | | This should replace uses of: class A { A(const &A); // DO NOT IMPLEMENT public: ... }; llvm-svn: 161975
* Add ASTMatcher for matching extern "C" function declarations.Daniel Jasper2012-08-152-0/+18
| | | | llvm-svn: 161974
* Fix a typo in VariadicFunction.h that leads to invalid code in macro expansion.Chad Rosier2012-08-151-1/+1
| | | | | | Patch by Andy Gibbs <andyg1001@hotmail.co.uk> llvm-svn: 161973
* Patch to warn about __private_extern__ on tentative definitionsFariborz Jahanian2012-08-154-3/+15
| | | | | | | | as it does something unexpected (but gcc compatible). Suggest use of __attribute__((visibility("hidden"))) on declaration instead. // rdar://7703982 llvm-svn: 161972
* Fix for PR#13606: http://llvm.org/bugs/show_bug.cgi?id=13606John Criswell2012-08-152-1/+19
| | | | | | | Changed the alignment of an LValue to be 64 bits so that we can handle alignment values up to half of a 64-bit address space. llvm-svn: 161971
* Fix another roundToIntegral bug where very large values could become ↵Owen Anderson2012-08-152-1/+20
| | | | | | infinity. Problem and solution identified by Steve Canon. llvm-svn: 161969
* [ms-inline asm] Add support for clobbers in CodeGen.Chad Rosier2012-08-152-6/+28
| | | | | | | This is a reapplication of r161914 now that the scoping issue has been resolved in r161966. llvm-svn: 161967
* [ms-inline asm] Capturing loop-scoped (std::string)Reg with a StringRef is bad.Chad Rosier2012-08-151-3/+5
| | | | llvm-svn: 161966
* Make synthesized sub-register indexes available in the target namespace.Jakob Stoklund Olesen2012-08-153-33/+30
| | | | | | | | | | | TableGen sometimes synthesizes missing sub-register indexes. Emit these indexes as enumerators in the target namespace along with the user-defined ones. Also take this opportunity to stop creating new Record objects for synthetic indexes. llvm-svn: 161964
* Fix base type of ASTDeclNodeLister.Michael Han2012-08-151-1/+1
| | | | llvm-svn: 161963
* Use vld1/vst1 to load/store f64 if alignment is < 4 and the target allows ↵Evan Cheng2012-08-155-19/+99
| | | | | | unaligned access. rdar://12091029 llvm-svn: 161962
* [analyzer] Don't try to devirtualize if the class is incomplete.Jordan Rose2012-08-151-1/+1
| | | | | | A similar issue to the previous commit, introduced by r161915. llvm-svn: 161961
* [analyzer] Only adjust the type of 'this' when we devirtualize a method call.Jordan Rose2012-08-153-9/+27
| | | | | | | | | | | | With reinterpret_cast, we can get completely unrelated types in a region hierarchy together; this was resulting in CXXBaseObjectRegions being layered directly on an (untyped) SymbolicRegion, whose symbol was from a completely different type hierarchy. This was what was causing the internal buildbot to fail. Reverts r161911, which merely masked the problem. llvm-svn: 161960
* tsan: store sync objects in memory block headers + delete them when the ↵Dmitry Vyukov2012-08-153-3/+67
| | | | | | block is freed llvm-svn: 161959
* [ms-inline asm] Add the left brace source location and improve the prettyChad Rosier2012-08-157-17/+34
| | | | | | printer. Patch by Enea Zaffanella <zaffanella@cs.unipr.it>. llvm-svn: 161958
* tsan: provide function that imitates write to a region but does not detect racesDmitry Vyukov2012-08-152-3/+16
| | | | llvm-svn: 161957
* Fix typo in comment.Owen Anderson2012-08-151-1/+1
| | | | llvm-svn: 161956
* Add missing Rfalse operand to the predicated pseudo-instructions.Jakob Stoklund Olesen2012-08-153-28/+41
| | | | | | | | | | | | | | | | | | | | | | | When predicating this instruction: Rd = ADD Rn, Rm We need an extra operand to represent the value given to Rd when the predicate is false: Rd = ADDCC Rfalse, Rn, Rm, pred The Rd and Rfalse operands are different registers while in SSA form. Rfalse is tied to Rd to make sure they get the same register during register allocation. Previously, Rd and Rn were tied, but that is not required. Compare to MOVCC: Rd = MOVCC Rfalse, Rtrue, pred llvm-svn: 161955
* Remove the extra semicolon reported by the buildbot.Alexander Potapenko2012-08-151-1/+1
| | | | llvm-svn: 161954
* tsan: switch to new allocatorDmitry Vyukov2012-08-159-37/+63
| | | | llvm-svn: 161953
* Introduce asan_intercepted_functions.h which contains the declarations ↵Alexander Potapenko2012-08-152-131/+206
| | | | | | | | wrapped functions and their wrappers. Those declarations are going to be shared between asan_interceptors.cc and the dynamic runtime library on Mac OS. llvm-svn: 161952
* [ASan] lit tests: use nm instead of llvm-nm, until llvm-nm becomes usable on ↵Alexey Samsonov2012-08-153-4/+8
| | | | | | Mac. Port output test change in r161948 to lit llvm-svn: 161951
* tsan: add some more tests for memory allocatorDmitry Vyukov2012-08-151-0/+7
| | | | llvm-svn: 161950
* tsan: fix several integer overflowsDmitry Vyukov2012-08-151-5/+13
| | | | llvm-svn: 161949
* Check for filenames and numbers to detect possible problems with ↵Alexander Potapenko2012-08-151-0/+4
| | | | | | asan_symbolize.py on -fPIE binaries. llvm-svn: 161948
* Pass offset of the frame address within the binary to addr2line instead of ↵Alexander Potapenko2012-08-151-6/+13
| | | | | | | | the absolute address. Fixes the problem with -PIE binaries. llvm-svn: 161947
* Patch the frame address regardless of the frame number.Alexander Potapenko2012-08-151-6/+2
| | | | llvm-svn: 161946
* Move the prototype of __CFInitialize to asan_mac.h so that ↵Alexander Potapenko2012-08-152-2/+3
| | | | | | asan_malloc_mac.cc may use it in the dynamic library mode. llvm-svn: 161945
* Set the branch probability of branching to the 'normal' destination of an invokeBill Wendling2012-08-152-2/+31
| | | | | | | | | | instruction to something absurdly high, while setting the probability of branching to the 'unwind' destination to the bare minimum. This should set cause the normal destination's invoke blocks to be moved closer to the invoke. PR13612 llvm-svn: 161944
OpenPOWER on IntegriCloud