summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Specify CPUs on the PPC bswap-load-store testHal Finkel2013-03-281-2/+2
| | | | | | Otherwise, the CHECK-NOT's might trigger depending on the host's CPU. llvm-svn: 178287
* Only enable 64-bit bswap DAG combines for PPC64Hal Finkel2013-03-282-0/+3
| | | | | | | | Compiling in 32-bit mode on a P7 would assert after 64-bit DAG combines were added for bswap with load/store. This is because these combines are really only valid in 64-bit mode, regardless of the CPU (and this was not being checked). llvm-svn: 178286
* Non optimizable objc_retainBlock calls are not forwarding.Michael Gottesman2013-03-282-5/+2
| | | | | | | | | | | | Since we handle optimizable objc_retainBlocks through strength reduction in OptimizableIndividualCalls, we know that all code after that point will only see non-optimizable objc_retainBlock calls. IsForwarding is only called by functions after that point, so it is ok to just classify objc_retainBlock as non-forwarding. <rdar://problem/13249661>. llvm-svn: 178285
* [ObjCARC] Strength reduce objc_retainBlock -> objc_retain if the ↵Michael Gottesman2013-03-283-15/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | objc_retainBlock is optimizable. If an objc_retainBlock has the copy_on_escape metadata attached to it AND if the block pointer argument only escapes down the stack, we are allowed to strength reduce the objc_retainBlock to to an objc_retain and thus optimize it. Current there is logic in the ARC data flow analysis to handle this case which is complicated and involved making distinctions in between objc_retainBlock and objc_retain in certain places and considering them the same in others. This patch simplifies said code by: 1. Performing the strength reduction in the initial ARC peephole analysis (ObjCARCOpts::OptimizeIndividualCalls). 2. Changes the ARC dataflow analysis (which runs after the peephole analysis) to consider all objc_retainBlock calls to not be optimizable (since if the call was optimizable, we would have strength reduced it already). This patch leaves in the infrastructure in the ARC dataflow analysis to handle this case, which due to 2 will just be dead code. I am doing this on purpose to separate the removal of the old code from the testing of the new code. <rdar://problem/13249661>. llvm-svn: 178284
* [ms-cxxabi] Correctly compute the size of member pointersReid Kleckner2013-03-286-41/+241
| | | | | | | | | | | | | | | | | Summary: This also relaxes the requirement on Windows that the member pointer class type be a complete type (http://llvm.org/PR12070). We still ask for a complete type to instantiate any templates (MSVC does this), but if that fails we continue as normal, relying on any inheritance attributes on the declaration. Reviewers: rjmccall CC: triton, timurrrr, cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D568 llvm-svn: 178283
* Objective-C: Provide fixit suggestions when class objectFariborz Jahanian2013-03-287-8/+66
| | | | | | | | is accessed via accessing 'isa' ivar to use object_getClass/object_setClass apis. // rdar://13503456 llvm-svn: 178282
* Hexagon: Replace switch-case in isDotNewInst with TSFlags.Jyotsna Verma2013-03-284-176/+26
| | | | llvm-svn: 178281
* Fix bad indentation in r178276Hal Finkel2013-03-281-2/+1
| | | | | | Thanks to Bill Schmidt for pointing this out! llvm-svn: 178280
* Hexagon: Enable SupportDebugInfomation and DwarfInSection flags.Jyotsna Verma2013-03-282-1/+2
| | | | llvm-svn: 178279
* Remove -O3.Akira Hatanaka2013-03-281-3/+3
| | | | llvm-svn: 178278
* Use direct types in most PowerPC Altivec instructions and patterns.Bill Schmidt2013-03-281-236/+333
| | | | | | | | | | | | | | | | | | | | | | | This follows up Ulrich Weigand's work in PPCInstrInfo.td and PPCInstr64Bit.td by doing the corresponding work for most of the Altivec patterns. I have not been able to do anything for the following classes of instructions: (1) Vector logicals. These don't have corresponding intrinsics and don't have a single obvious vector type. So far as I can tell I need to leave these as VRRC. Affected instructions are: VAND, VANDC, VNOR, VOR, VXOR, V_SET0. (2) Instructions that make use of vector shuffle. The selection code promotes all shuffles to v16i8, so any pattern that matches on a shuffle is constrained. I haven't found any way to make the patterns match on their natural types, so I plan to leave these as VRRC. Affected instructions are: VMRG*, VSPLTB, VSPLTH, VSPLTW, VPKUHUM, VPKUWUM. No change in behavior is anticipated. llvm-svn: 178277
* Add the PPC64 ldbrx/stdbrx instructionsHal Finkel2013-03-287-20/+67
| | | | | | | | These are 64-bit load/store with byte-swap, and available on the P7 and the A2. Like the similar instructions for 16- and 32-bit words, these are matched in the target DAG-combine phase against load/store-bswap pairs. llvm-svn: 178276
* Fix issue with disassembler decoding CBZ/CBNZ immediates as negatives when ↵Gordon Keiser2013-03-282-2/+5
| | | | | | | | the upper bit is set. They should always be zero-extended, not sign extended. Added test case. llvm-svn: 178275
* Provide a fixit to static_cast for reinterpret_casts within a class hierarchy.Jordan Rose2013-03-282-6/+49
| | | | | | | | | The suggestion was already in the text of the note; this just adds the actual fixit and the appropriate test cases. Patch by Alexander Zinenko! llvm-svn: 178274
* Implemented a warning when an input several bitwise operations areSam Panzer2013-03-283-17/+165
| | | | | | | | | | | likely be implicitly truncated: * All forms of Bitwise-and, bitwise-or, and integer multiplication. * The assignment form of integer addition, subtraction, and exclusive-or * The RHS of the comma operator * The LHS of left shifts. llvm-svn: 178273
* Rename clang::driver::tools::linuxtools to clang::driver::tools::gnutools.Thomas Schwinge2013-03-283-17/+16
| | | | | | | This is about the GNU Binutils' assembler and linker, so reflect that in the name. llvm-svn: 178272
* Rename LinuxDistro to Distro.Thomas Schwinge2013-03-281-11/+11
| | | | | | | | The concept of such a software distribution is not tied to the Linux kernel; for example Debian GNU/Linux, Debian GNU/Hurd, and Debian GNU/kFreeBSD all share the same source packages and generally the same user-space configuration. llvm-svn: 178270
* [ELF] Cache contentType and permissions.Michael J. Spencer2013-03-282-18/+31
| | | | llvm-svn: 178269
* [Driver] Don't open files multiple times.Michael J. Spencer2013-03-281-2/+1
| | | | llvm-svn: 178268
* Fix a few warnings/errors for compiling with -fno-exceptions.Howard Hinnant2013-03-285-2/+23
| | | | llvm-svn: 178267
* Make all the ALWAYS_INLINE users Windows-friendly; also, avoid ALWAYS_INLINE ↵Timur Iskhodzhanov2013-03-285-15/+15
| | | | | | INLINE combinations llvm-svn: 178266
* Hardening the vector iterator synthetic child(ren) provider against ↵Enrico Granata2013-03-281-1/+3
| | | | | | item-not-in-cluster asserts llvm-svn: 178265
* Use early return in printing logic. Minor cleanup.Ted Kremenek2013-03-281-2/+4
| | | | llvm-svn: 178264
* Add CFG logic to create a conditional branch for modeling static initializers.Ted Kremenek2013-03-282-2/+34
| | | | | | | | | | | | | | | | This is an optional variant of the CFG. This allows analyses to model whether or not a static initializer has run, e.g.: static Foo x = bar(); For basic dataflow analysis in Sema we will just assume that the initializer always runs. For the static analyzer we can use this branch to accurately track whether or not initializers are on. This patch just adds the (opt-in) functionality to the CFG. The static analyzer still needs to be modified to adopt this feature. llvm-svn: 178263
* Be sure to take the mutex when the destructor is called in case other ↵Greg Clayton2013-03-282-0/+6
| | | | | | threads are using these lists and those other threads have the mutex locked. llvm-svn: 178262
* Fixed handling of comments before preprocessor directives.Alexander Kornienko2013-03-282-2/+10
| | | | | | | | | Comments before preprocessor directives used to be stored with InPPDirective flag set, which prevented correct comment splitting in this case. Fixed by flushing comments before switching on InPPDirective. Added a new test and fixed one of the existing tests. llvm-svn: 178261
* modularize - Fixed broken array use (asserted in tests). Renamed KindType enum.John Thompson2013-03-281-26/+25
| | | | llvm-svn: 178259
* <rdar://problem/13527167>Greg Clayton2013-03-281-0/+4
| | | | | | | | Partial fix for the above radar. Call ThreadList::Clear() in the ThreadList destructor so if any other threads currently have the thread list mutex, we won't destroy the list for them while they are using it. ThreadList::Clear() takes the mutex and clears the thread list contents. llvm-svn: 178257
* Testing commit access to llvm. Remove two lines of whitespace from the ↵Gordon Keiser2013-03-281-2/+0
| | | | | | Thumb README. llvm-svn: 178256
* Fix order of initialization warning.Eric Christopher2013-03-281-1/+1
| | | | llvm-svn: 178255
* Correct spelling of Git.Thomas Schwinge2013-03-282-6/+6
| | | | llvm-svn: 178254
* Second try at r178075. The llvm breakage has been fixed by r178240.Howard Hinnant2013-03-281-16/+64
| | | | llvm-svn: 178253
* Introduces extended register sets whose availability can vary with the ↵Ashok Thirumurthi2013-03-285-20/+103
| | | | | | | | | | target processor. - Includes a stub for AVX support in the x86-64 register context and a failing test for register sets that are unavailable. Thanks to Greg Clayton for his review feedback. llvm-svn: 178252
* Fix makefile build by linking needed library 'irreader'Daniel Malea2013-03-281-1/+1
| | | | llvm-svn: 178251
* [analyzer] These implements unix.MismatchedDeallocatorChecker checker.Anton Yartsev2013-03-286-85/+499
| | | | | | | | + Improved display names for allocators and deallocators The checker checks if a deallocation function matches allocation one. ('free' for 'malloc', 'delete' for 'new' etc.) llvm-svn: 178250
* Move test since it depends on the X86 backend.Rafael Espindola2013-03-281-0/+0
| | | | llvm-svn: 178249
* These are all simple pointer wrappers. Pass them by value.Rafael Espindola2013-03-284-4/+4
| | | | llvm-svn: 178247
* Hexagon: Use multiclass for gp-relative instructions.Jyotsna Verma2013-03-283-1094/+237
| | | | | | Remove noV4T gp-relative instructions. llvm-svn: 178246
* tsan: print statistics about benign race annotationsDmitry Vyukov2013-03-285-10/+78
| | | | | | | (total count, unique, matched) if requested with print_benign=1 flag. llvm-svn: 178245
* [analyzer] For now assume all standard global 'operator new' functions ↵Anton Yartsev2013-03-285-56/+158
| | | | | | | | allocate memory in heap. + Improved test coverage for cplusplus.NewDelete checker. llvm-svn: 178244
* Allow users to specify NULL like macros to be replacedTareq A. Siraj2013-03-286-18/+102
| | | | | | | | | | | | | | | | -use-nullptr only replaced macro named NULL and ignored any user defined macros that behaved like NULL. This patch introduces -user-null-macros command line option to let users specify their custom NULL like macros. - Added a -user-null-macros command line option that takes a comma-separated list of user-defined macros to be replaced when using the -use-nullptr transform. - Added documentation. - Updated testcase to reflect current behavior. - Whitespace fixes. Reviewers: revane, klimek, gribozavr llvm-svn: 178243
* Fix the Linux build issues introduced by r178191.Ashok Thirumurthi2013-03-288-45/+50
| | | | | | | | | - All Linux logging channels now use a single global instance of lldb_private::Log, to handle the case of logging during process tear down. - Also removed a single use of LogSP in FreeBSD and fixed a typo in a comment while reading through ProcessKDPLog. Reviewed by Daniel Malea. llvm-svn: 178242
* Test commit: Remove whitespace.Tareq A. Siraj2013-03-281-1/+1
| | | | llvm-svn: 178241
* Seciton 24.2.2 of the C++ standard, [iterator.iterators], Table 106Howard Hinnant2013-03-281-6/+10
| | | | | | | | | | | | | | | | | | | | | requires that the return type of *r for all iterators r be reference, where reference is defined in [iterator.requirements.general]/p11 as iterator_traits<X>::reference, and X is the type of r. But in CFG.h, the dereference operator of PredIterator and SuccIterator return pointer, not reference. Furthermore the nested type reference is value_type&, which is not the type returned from operator*(). This patch simply makes the iterator::reference type value_type*, which is what the operator*() returns, and then re-lables the return type as reference. From a functionality point of view, the only difference is that the nested reference type is now value_type* instead of value_type&. llvm-svn: 178240
* [ASan] Speed-up initialization-order checking: create and use fast versions ↵Alexey Samsonov2013-03-289-72/+118
| | | | | | of PoisonShadow functions, store copies of __asan_global descriptors in a vector instead of list of pointers. This gives 3x speedup on both benchmarks and real binaries with lots of globals. llvm-svn: 178239
* [Sanitizer] Minor enhancements in InternalVector containerAlexey Samsonov2013-03-281-2/+6
| | | | llvm-svn: 178238
* Add missing #ifndef _LIBCPP_NO_EXCEPTIONS around throw in include/thread.Howard Hinnant2013-03-281-0/+2
| | | | llvm-svn: 178237
* AArch64: implement GICv3 system registersTim Northover2013-03-285-5/+647
| | | | llvm-svn: 178236
* Add support for gcc-compatible -mpopcntd -mno-popcntd PPC optionsHal Finkel2013-03-284-1/+14
| | | | | | | gcc provides -mpopcntd and -mno-popcntd for controlling the popcntd target feature; support these options as well. llvm-svn: 178235
* Updating LibASTMatchersReferenceEdwin Vane2013-03-281-40/+40
| | | | | | | The generator for LibASTMatchersReference.html didn't get run last time ASTMatchers changes were made. Here are up-to-date docs. llvm-svn: 178234
OpenPOWER on IntegriCloud