summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add a ThreadSanitizer testcase that tests multiple reported issues.Kuba Brecka2016-04-103-0/+212
| | | | llvm-svn: 265906
* Provide more information in ThreadSanitizer's JSON data. Move remaining ↵Kuba Brecka2016-04-106-61/+290
| | | | | | TSan logic from SBThread to InstrumentationRuntime plugin. llvm-svn: 265905
* [Clang][AVX512][BuiltIn] Adding avx512 ( vcvt ) builtin to clangMichael Zuckerman2016-04-103-0/+412
| | | | | | Differential Revision: http://reviews.llvm.org/D18932 llvm-svn: 265904
* [X86][AVX512] Add vector integer division by constant testsSimon Pilgrim2016-04-102-0/+4428
| | | | | | Added sdiv/srem and udiv/urem tests cases for 512 bit vectors. llvm-svn: 265903
* [X86][AVX512BW] Add support for v64i8 multipliesSimon Pilgrim2016-04-102-595/+59
| | | | | | | | | | Extend the existing lowering of vXi8 multiplies to support v64i8 on avx512bw targets. I added the Lower512IntArith helper function to help with this - not sure how often this could be used in the future, but it seemed better than putting all that logic inside LowerMUL. Differential Revision: http://reviews.llvm.org/D18937 llvm-svn: 265902
* Loop vectorization with uniform loadElena Demikhovsky2016-04-102-0/+56
| | | | | | | | | Vectorization cost of uniform load wasn't correctly calculated. As a result, a simple loop that loads a uniform value wasn't vectorized. Differential Revision: http://reviews.llvm.org/D18940 llvm-svn: 265901
* [ThinLTO] Remove unused parameter (NFC)Teresa Johnson2016-04-101-9/+7
| | | | llvm-svn: 265900
* Correct pg instrumentation for AArch64Saleem Abdulrasool2016-04-102-24/+20
| | | | | | | | | It seems that there was a miscommunication between Renato and I, and the original behaviour of AArch64 was to be preserved and not to mirror the new behaviour. Restore the original behaviour for AArch64. Addresses post-commit review comments from Renato Golin. llvm-svn: 265899
* [X86][AVX512] Regenerated mask op testsSimon Pilgrim2016-04-102-39/+67
| | | | llvm-svn: 265898
* [OCaml] Expose the LLVM diagnostic handlerJeroen Ketema2016-04-107-2/+153
| | | | | | Differential Revision: http://reviews.llvm.org/D18891 llvm-svn: 265897
* Adding avx512 (unpck{h|l}{pd|ps}, rcp14{pd|ps}{128|256},vplzcnt{d|q} ) ↵Michael Zuckerman2016-04-105-4/+752
| | | | | | | | builtin to clang Differential Revision: http://reviews.llvm.org/D18931 llvm-svn: 265896
* [Clang][AVX512][BuiltIn] Adding avx512 ( store ) builtin to clangMichael Zuckerman2016-04-107-1/+268
| | | | | | Differential Revision: http://reviews.llvm.org/D18925 llvm-svn: 265895
* Allow pointer expressions in SCEVs again.Johannes Doerfert2016-04-1015-166/+172
| | | | | | | | | In r247147 we disabled pointer expressions because the IslExprBuilder did not fully support them. This patch reintroduces them by simply treating them as integers. The only special handling for pointers that is left detects the comparison of two address_of operands and uses an unsigned compare. llvm-svn: 265894
* [X86] Use for loops over types to reduce code for setting up operation actions.Craig Topper2016-04-101-150/+97
| | | | llvm-svn: 265893
* [X86] Remove unnecessary setOperationAction for SRA v2i64/v4i64 when VLX is ↵Craig Topper2016-04-101-2/+0
| | | | | | suppored. This is already done for SSE2/AVX2 which VLX implies. NFC llvm-svn: 265892
* Fix asan test failureXinliang David Li2016-04-101-0/+2
| | | | llvm-svn: 265891
* [PGO] Fix deserialize bug Xinliang David Li2016-04-102-1/+43
| | | | | | | | | | Raw function pointer collected by value profile data may be from external functions that are not instrumented. They won't have mapping data to be used by the deserializer. Force the value to be 0 in this case. llvm-svn: 265890
* test: add additional tests for SVN r265888Saleem Abdulrasool2016-04-101-0/+23
| | | | | | Add test cases for AArch64 as well as that was changed as part of that change. llvm-svn: 265889
* Add support for __gnu_mcount_nc as the pg interfaceSaleem Abdulrasool2016-04-102-2/+55
| | | | | | | | | | | This adds support to optionally support using `__gnu_mcount_nc` as the mcount interface rather than `mcount` for Linux and EABI. The other targets do not provide an implementation for `__gnu_mcount_nc`. This can be activated via the `-meabi gnu` flag. Resolves PR23969. llvm-svn: 265888
* Clean up test caseXinliang David Li2016-04-101-40/+36
| | | | llvm-svn: 265887
* [CodeGen] Don't assume that fixed stack objects are aligned in a ↵Charles Davis2016-04-093-7/+49
| | | | | | | | | | | | | | | | | | | | stack-realigned function. Summary: After we make the adjustment, we can assume that for local allocas, but not for stack parameters, the return address, or any other fixed stack object (which has a negative offset and therefore lies prior to the adjusted SP). Fixes PR26662. Reviewers: hfinkel, qcolombet, rnk Subscribers: rnk, llvm-commits Differential Revision: http://reviews.llvm.org/D18471 llvm-svn: 265886
* [COFF] SmallVector<char, 0> -> SmallString<0>.Davide Italiano2016-04-092-3/+3
| | | | | | This way we're consistent between ELF and COFF. llvm-svn: 265885
* [FIX] Do not allow select as a base pointer in the SCoP regionJohannes Doerfert2016-04-092-0/+68
| | | | llvm-svn: 265884
* Do not allow exception handling code in SCoPsJohannes Doerfert2016-04-091-0/+3
| | | | llvm-svn: 265883
* Add __isl_give annotations to return types [NFC]Johannes Doerfert2016-04-094-15/+20
| | | | llvm-svn: 265882
* [MC] support TLSDESC and TLSCALL / GNU2 tls dialectDavide Italiano2016-04-092-0/+30
| | | | | | Differential Revision: http://reviews.llvm.org/D18885 llvm-svn: 265881
* Fix hash_integer_valueJF Bastien2016-04-091-1/+1
| | | | | | | | Broken in D18938 because underlying_type only works for enums and not all stdlibs are sad when given a non-enum. Bots error out with 'only enumeration types have underlying types'. There's probably a clever enable_if-ism that I can do with underlying_type and the actual integer value, but is_integral_or_enum also accepts implicit conversion so I need to ponder my life choices a bit before committing to template magic. A quick fix for now. llvm-svn: 265880
* is_integral_or_enum ❥ enum class ⇒ hashable enum classJF Bastien2016-04-092-5/+8
| | | | | | | | | | | | | | | | | | | Summary: As discussed in D18775 making AtomicOrdering an enum class makes it non-hashable, which shouldn't be the case. Hashing.h defines hash_value for all is_integral_or_enum, but type_traits.h's definition of is_integral_or_enum only checks for *inplicit* conversion to integral types which leaves enum classes out and is very confusing because is_enum is true for enum classes. This patch: - Adds a check for is_enum when determining is_integral_or_enum. - Explicitly converts the value parameter in hash_value to handle enum class hashing. Note that the warning at the top of Hashing.h still applies: each execution of the program has a high probability of producing a different hash_code for a given input. Thus their values are not stable to save or persist, and should only be used during the execution for the construction of hashing datastructures. Reviewers: dberlin, chandlerc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18938 llvm-svn: 265879
* Basic: thread TargetOptions into TargetInfoSaleem Abdulrasool2016-04-091-292/+335
| | | | | | | | This threads TargetOptions into the TargetInfo hierarchy. This is a rework of the original attempt to thread additional information into the TargetInfo to make decisions based on additional ABI related options. llvm-svn: 265878
* ObjC kindof: check the context when inserting methods to global pool.Manman Ren2016-04-096-5/+59
| | | | | | | | | | | | | | | | To make kindof lookup work, we need to insert methods with different context into the global pool, even though they have the same siganture. Since diagnosis of availability is performed on the best candidate, which is often the first candidate from the global pool, we prioritize the methods that are unavaible or deprecated to the head of the list. Since we now have more methods in the global pool, we need to watch out for performance impact. rdar://25635831 llvm-svn: 265877
* Drop debug info for DISubprograms that are not referenced by anythingAdrian Prantl2016-04-097-76/+24
| | | | | | | | | | | | | | | | | | | | | This patch drops the debug info for all DISubprograms that are (a) not attached to an llvm::Function and (b) not indirectly reachable via inline scopes from any surviving Function and (c) not reachable from a type (i.e.: member functions). Background: I'm currently working on a patch to reverse the pointers between DICompileUnit and DISubprogram (for more info check Duncan's RFC on lazy-loading of debug info metadata http://lists.llvm.org/pipermail/llvm-dev/2016-March/097419.html). The idea is to remove the list of subprograms from DICompileUnit and instead point to the owning compile unit from each DISubprogram. After doing this all DISubprograms fulfilling the above criteria will be implicitly dropped unless we go through an extra effort to preserve them. http://reviews.llvm.org/D18477 <rdar://problem/25256815> llvm-svn: 265876
* [x86] use BMI 'andn' for logic + compare ops Sanjay Patel2016-04-094-9/+24
| | | | | | | | | | With BMI, we can use 'andn' to save an instruction when the result is only used in a compare. This is related to one of the potential sequences to check 'isfinite' in: https://llvm.org/bugs/show_bug.cgi?id=27164 Differential Revision: http://reviews.llvm.org/D18910 llvm-svn: 265875
* [X86][XOP] Support for VPPERM 2-input shuffle mask decodingSimon Pilgrim2016-04-094-31/+131
| | | | | | | | | | This patch adds support for decoding XOP VPPERM instruction when it represents a basic shuffle. The mask decoding required the existing MCInstrLowering code to be updated to support binary shuffles - the implementation now matches what is done in X86InstrComments.cpp. Differential Revision: http://reviews.llvm.org/D18441 llvm-svn: 265874
* [FIX] Do not recompute SCEVs but pass them to subfunctionsJohannes Doerfert2016-04-094-23/+70
| | | | | | | | | | | | This reverts commit 2879c53e80e05497f408f21ce470d122e9f90f94. Additionally, it adds SDiv and SRem instructions to the set of values discovered by the findValues function even if we add the operands to be able to recompute the SCEVs. In subfunctions we do not want to recompute SDiv and SRem instructions but pass them instead as they might have been created through the IslExprBuilder and are more complicated than simple SDiv/SRem instructions in the code. llvm-svn: 265873
* Fix: Always honor LLVM_LIBDIR_SUFFIX.Michael Kruse2016-04-091-1/+1
| | | | | | | | | | | Static libraries where installed into "lib${LLVM_LIBDIR_SUFFIX}" while shared ones into "lib". I found no justification for this behaviour. This patch changes both types of libraries to be install into "lib${LLVM_LIBDIR_SUFFIX}". LLVM and clang use the same behaviour. This fixes llvm.org/PR27305. llvm-svn: 265872
* [X86] Use for loops over types to reduce code for setting up operation ↵Craig Topper2016-04-091-149/+78
| | | | | | actions. NFC llvm-svn: 265871
* [X86] Remove calls to setOperationAction that set CTLZ_ZERO_UNDEF for some ↵Craig Topper2016-04-091-16/+0
| | | | | | vector types to Expand. Expand is already set for all operations for all vector types earlier so this is redundant. NFC llvm-svn: 265870
* Fix TestBreakpointSetRestart failure on Android.Oleksiy Vyalov2016-04-091-6/+12
| | | | llvm-svn: 265869
* [Concepts] Implement subsection [dcl.spec.concept]p7 of the Concepts TSNathan Wilson2016-04-094-0/+70
| | | | | | | | | | | | Summary: A program shall not declare an explicit instantiation (14.8.2), an explicit specialization (14.8.3), or a partial specialization of a concept definition. Reviewers: rsmith, hubert.reinterpretcast, faisalv, aaron.ballman Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D18221 llvm-svn: 265868
* Maintain calling convention when inling calls to llvm.deoptimizeSanjoy Das2016-04-092-1/+18
| | | | | | | The behavior here was buggy -- we'd forget the calling convention after inlining a callsite calling llvm.deoptimize. llvm-svn: 265867
* [libfuzzer] defensive assertMike Aizatsky2016-04-081-1/+2
| | | | llvm-svn: 265866
* Remove what I believe are the last known instances of formatters that run codeEnrico Granata2016-04-086-92/+33
| | | | llvm-svn: 265865
* [Perf-Training] Reworked workflow improvements for order-file generationChris Bieneman2016-04-083-13/+40
| | | | | | | | | | | | | | | | | | | This is re-landing r260742. I've reworked the conditionals so that it only hits when targeting Apple platforms with ld64. Original Summary: With this change generating clang order files using dtrace uses the following workflow: cmake <whatever options you want> ninja generate-order-file ninja clang This patch works by setting a default path to the order file (which can be overridden by the user). If the order file doesn't exist during configuration CMake will create an empty one. CMake then ties up the dependencies between the clang link job and the order file, and generate-order-file overwrites CLANG_ORDER_FILE with the new order file. llvm-svn: 265864
* [CMake] Make llvm_ExternalProject always call the build actionChris Bieneman2016-04-081-9/+17
| | | | | | | | This makes it so that when running 'ninja test-suite' from the top-level LLVM ninja build it *always* re-runs the ninja command in the test-suite directory. This mechanism is required because the top-level ninja file doesn't have a view into the subdirectory dependency tree, so it can't know what, if anything, needs to be rebuilt. llvm-svn: 265863
* Use NoDebug compile units to mark debug metadata used only for sample-basedAdrian Prantl2016-04-083-9/+22
| | | | | | | | | | profiling and optimization remarks and indicate that no debug info shall be emitted for these compile units. http://reviews.llvm.org/D18808 <rdar://problem/25427165> llvm-svn: 265862
* Support the Nodebug emission kind for DICompileUnits.Adrian Prantl2016-04-089-71/+171
| | | | | | | | | | | | | | | | Sample-based profiling and optimization remarks currently remove DICompileUnits from llvm.dbg.cu to suppress the emission of debug info from them. This is somewhat of a hack and only borderline legal IR. This patch uses the recently introduced NoDebug emission kind in DICompileUnit to achieve the same result without breaking the Verifier. A nice side-effect of this change is that it is now possible to combine NoDebug and regular compile units under LTO. http://reviews.llvm.org/D18808 <rdar://problem/25427165> llvm-svn: 265861
* benchcomp: Add a mode for analyzing rule execution time in ninja log files.Peter Collingbourne2016-04-081-0/+31
| | | | llvm-svn: 265860
* benchcomp: Look at all sections whose names begin with .text, not just the ↵Peter Collingbourne2016-04-081-1/+1
| | | | | | .text section. llvm-svn: 265859
* -thread-info in lldbmi does not conform to protocol. Should end with current ↵Chuck Ries2016-04-085-4/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | thread id -thread-info in lldbmi does not conform to protocol. Should end with current thread id as described here: https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI-Thread-Commands.html#GDB_002fMI-Thread-Commands When printing all threads, the current thread id should be printed afterwards. Example: -thread-info ^done,threads=[ {id="2",target-id="Thread 0xb7e14b90 (LWP 21257)", frame={level="0",addr="0xffffe410",func="__kernel_vsyscall", args=[]},state="running"}, {id="1",target-id="Thread 0xb7e156b0 (LWP 21254)", frame={level="0",addr="0x0804891f",func="foo", args=[{name="i",value="10"}], file="/tmp/a.c",fullname="/tmp/a.c",line="158"}, state="running"}], current-thread-id="1" (gdb) Patch from jacdavis@microsoft.com Reviewers: zturner, chuckr Differential Revision: http://reviews.llvm.org/differential/revision/edit/18880/ llvm-svn: 265858
* Remove unused functions from ASTWriter interface.Richard Smith2016-04-082-26/+11
| | | | llvm-svn: 265857
OpenPOWER on IntegriCloud