summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Strengthen the type constraints on X86psadbw and X86dbpsadbw to reduce ↵Craig Topper2015-11-261-2/+6
| | | | | | some of the type checks in the isel matching tables. llvm-svn: 254139
* [SelectionDAG] Add a SDTCisSameSizeAs type constraint that can be used to ↵Craig Topper2015-11-263-1/+78
| | | | | | ensure vector widths match even if the element size and count don't. llvm-svn: 254138
* Add type constraints to masked_load/masked_store to ensure the mask vector ↵Craig Topper2015-11-261-2/+3
| | | | | | has the same number of elements as the other vectors. llvm-svn: 254137
* [TableGen] Flip reversed comments.Craig Topper2015-11-261-2/+2
| | | | llvm-svn: 254136
* [ELF] Reapply r254031 - LinkerScript: lookup absolute paths under sysrootSimon Atanasyan2015-11-262-3/+30
| | | | | | | | | | | | | | | In case a sysroot prefix is configured, and the filename starts with the '/' character, and the script being processed was located inside the sysroot prefix, the file's name will be looked for in the sysroot prefix. Otherwise, the linker falls to the common lookup scheme. It is slightly modified version of the commit r254031. The problem of the initial commit was in the `is_absolute` call. On Windows 'C:\' is absolute path but we do not need to find it under sysroot. In this patch linker looks up a path under sysroot only if the paths starts with '/' character. llvm-svn: 254135
* [Diagnostics] Call setMapping on the correct diagnostic states in a few ↵Craig Topper2015-11-261-3/+3
| | | | | | | | | | | | places. GetCurDiagState() was being used when it shouldn't be. I spotted this by inspection in the for loop that wasn't using its iterator and was just acting on the current state repeatedly. This appears to have been introduced as a copy and paste bug in r140763 over 4 years ago. I have no idea how to test this. I just went back to the original commit and tried to use the variables it was using before that. llvm-svn: 254134
* Use range-based for loops. NFCCraig Topper2015-11-261-7/+7
| | | | llvm-svn: 254133
* [Hexagon] HVX vector register classes and more isel patternsKrzysztof Parzyszek2015-11-265-80/+204
| | | | llvm-svn: 254132
* Update reference to final TM TS spec.Richard Smith2015-11-261-1/+1
| | | | llvm-svn: 254123
* P0002R1: increment on expressions of type bool is no longer allowed in C++1z.Richard Smith2015-11-266-7/+31
| | | | llvm-svn: 254122
* [modules] Refactor handling of -fmodules-embed-*. Track this properly ratherRichard Smith2015-11-267-52/+61
| | | | | | | than reusing the "overridden buffer" mechanism. This will allow us to make embedded files and overridden files behave differently in future. llvm-svn: 254121
* AMDGPU: Fix typoTom Stellard2015-11-261-1/+1
| | | | llvm-svn: 254120
* Add static_assert to set/multiset/map/multimap/forward_list/deque that the ↵Marshall Clow2015-11-2617-0/+252
| | | | | | allocator's value_type match the container's value_type. vector/unordered/list/string already do this. Add tests for all the containers to verify this. llvm-svn: 254119
* [OperandBundles] Treat "deopt" operand bundles speciallySanjoy Das2015-11-266-6/+112
| | | | | | | | | Teach LLVM optimize to more precisely in the presence of "deopt" operand bundles. "deopt" operand bundles imply that the call they're attached to is at least `readonly` (i.e. they don't imply clobber semantics), and they don't capture their bundle operands. llvm-svn: 254118
* Driver: protect from empty -L argsMartell Malone2015-11-261-1/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D12466 llvm-svn: 254117
* AMDGPU: Add llvm.amdgcn.dispatch.ptr intrinsicTom Stellard2015-11-267-1/+48
| | | | | | | | | | | | | | Summary: This returns a pointer to the dispatch packet, which can be used to load information about the kernel dispach. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D14898 llvm-svn: 254116
* [libFuzzer] clean up the docs, add one more link Kostya Serebryany2015-11-261-3/+12
| | | | llvm-svn: 254115
* [analyzer] Add tests for generalized lambda capture (C++14). NFC.Devin Coughlin2015-11-261-0/+50
| | | | | | | | Add tests demonstrating that the analyzer supports generalized lambda capture. This support falls out naturally from the work Gábor Horváth did adding C++11 lambdas to the analyzer. llvm-svn: 254114
* Sync up with master InstrProfData.incXinliang David Li2015-11-261-1/+1
| | | | llvm-svn: 254113
* Fix a typo introduced in previous patchesXinliang David Li2015-11-261-1/+1
| | | | llvm-svn: 254112
* Fix a comment typo (cashe -> cache)Hal Finkel2015-11-251-1/+1
| | | | llvm-svn: 254111
* [PGO] Implement ValueProfiling Closure interfaces for runtime value profile dataXinliang David Li2015-11-253-10/+270
| | | | | | | | | | | | | | | | This is one of the many steps to commonize value profiling support between profile runtime and compiler/llvm tools. After this change, profiler runtime now can share the same C APIs to do VP serialization/deseriazation with LLVM host tools (and produces value data in identical format between indexed and raw profile). It is not yet enabled in profiler runtime yet. Also added a unit test case to test runtime profile data serialization/deserialization interfaces implemented using common closure code. llvm-svn: 254110
* [safestack] Fix alignment of dynamic allocas.Evgeniy Stepanov2015-11-252-2/+2
| | | | | | Fixes PR25588. llvm-svn: 254109
* Fix a use-after-free in `llvm-config`.Richard Diamond2015-11-251-10/+10
| | | | | | | | | | | | | | | Summary: This could happen if `GetComponentNames` is true, because `Name` from `VisitComponent` would reference a stack instance of `std::string` in `ComputeLibsForComponents`. Reviewers: beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14913 llvm-svn: 254108
* [analyzer] Include block capture copy expressions in the CFG.Devin Coughlin2015-11-253-2/+130
| | | | | | | | | | | This prevents spurious dead store warnings when a C++ lambda is casted to a block. I've also added several tests documenting our still-incomplete support for lambda-to-block casts. rdar://problem/22236293 llvm-svn: 254107
* [WebAssembly] Fix inline asm support for i64 operands.Dan Gohman2015-11-252-1/+18
| | | | llvm-svn: 254106
* Reapply r254098.George Rimar2015-11-256-60/+212
| | | | | | | | | Fix is (OutputSections.cpp): for (std::pair<const SymbolBody *, size_t> &I : Entries) { => for (std::pair<const SymbolBody *, unsigned> &I : Entries) { llvm-svn: 254105
* [WebAssembly] Fold setne and seteq comparisons into selects.Dan Gohman2015-11-253-34/+154
| | | | llvm-svn: 254104
* Revert r254098 as it seems broke build bot.George Rimar2015-11-256-212/+60
| | | | | | http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/3555 llvm-svn: 254103
* sanitizer_common: remove noisy warning about symbolizer not found.Ivan Krasin2015-11-251-4/+0
| | | | | | | | | | | | | | Summary: In r251553, I added a warning that proved to be super noisy, especially in case of MSan. Removing it for now, and I will probably add some additional diagnostics for symbolizer, when I better understand how to make it properly. Reviewers: eugenis Differential Revision: http://reviews.llvm.org/D14998 llvm-svn: 254102
* [ELF] - Implemented optimizations for @tlsld and @tlsgdGeorge Rimar2015-11-255-22/+145
| | | | | | | | | Implements @tlsld (LD to LE) and @tlsgd (GD to LE) optimizations. Patch does not implement the GD->IE case for @tlsgd. Differential revision: http://reviews.llvm.org/D14870 llvm-svn: 254101
* [libFuzzer] add a flag -exact_artifact_pathKostya Serebryany2015-11-256-0/+13
| | | | llvm-svn: 254100
* [Hexagon] Treat transfers of FP immediates are pseudo instructionsKrzysztof Parzyszek2015-11-252-5/+19
| | | | | | | | This is a temporary fix to address ICE on 2005-10-21-longlonggtu.ll. The proper fix will be to use A2_tfrsi, but it will need more work to teach all users of A2_tfrsi to also expect a floating-point operand. llvm-svn: 254099
* [ELF] - Lazy relocations support for x86 target.George Rimar2015-11-256-60/+212
| | | | | | | | | | | Patch implements lazy relocations for x86. One of features of x86 is that executable files and shared object files have separate procedure linkage tables. So patch implements both cases. Detailed information about instructions used can be found in http://docs.oracle.com/cd/E19620-01/805-3050/chapter6-1235/index.html (search: x86: Procedure Linkage Table). Differential revision: http://reviews.llvm.org/D14955 llvm-svn: 254098
* P0001R1: 'register' storage class specifier is no longer permitted in C++1z.Richard Smith2015-11-255-6/+16
| | | | | | | We will still allow it in system headers, in macros from system headers, when combined with an 'asm' label, and under the flag -Wno-register. llvm-svn: 254097
* [WebAssembly] Add some comments. NFC.Dan Gohman2015-11-251-0/+5
| | | | llvm-svn: 254096
* AMDGPU/SI: select S_ABS_I32 when possible (v2)Marek Olsak2015-11-255-3/+194
| | | | | | | | | | v2: added more tests, moved the SALU->VALU conversion to a separate function It looks like it's not possible to get subregisters in the S_ABS lowering code, and I don't feel like guessing without testing what the correct code would look like. llvm-svn: 254095
* [WebAssembly] Fix WebAssembly register numbering for registers added late.Dan Gohman2015-11-252-0/+9
| | | | | | | | | If virtual registers are created late, mappings to WebAssembly registers need to be added explicitly. This patch adds a function to do so and teaches WebAssemblyPeephole to use it. This fixes an out-of-bounds access on the WARegs vector. llvm-svn: 254094
* [SCCP] More informative message if we don't know how to handle a terminator.Davide Italiano2015-11-251-1/+1
| | | | llvm-svn: 254093
* [ELF2][MIPS] Support R_MIPS_CALL16 relocationSimon Atanasyan2015-11-252-2/+49
| | | | | | | | | R_MIPS_CALL16 relocation provides the same result as R_MIPS_GOT16 relocation but does not need to check the result on overflow. Differential Revision: http://reviews.llvm.org/D14916 llvm-svn: 254092
* AMDGPU: Check feature attributes in SIMachineFunctionInfoMatt Arsenault2015-11-252-9/+134
| | | | llvm-svn: 254091
* [ELF/x86] Implemented R_386_TLS_LE_32, R_386_TLS_LE relocations.George Rimar2015-11-256-5/+103
| | | | | | | | | | | | | | | | | | | | | This patch implements next relocations: R_386_TLS_LE - Negative offset relative to static TLS (GNU version). R_386_TLS_LE_32 - Offset relative to static TLS block. These ones are created when using next code sequences: * @tpoff - The operator must be used to compute an immediate value. The linker will report an error if the referenced variable is not defined or it is not code for the executable itself. No GOT entry is created in this case. * @ntpoff Calculate the negative offset of the variable it is added to relative to the static TLS block. The operator must be used to compute an immediate value. The linker will report an error if the referenced variable is not defined or it is not code for the executable itself. No GOT entry is created in this case. Information was found in Ulrich Drepper, ELF Handling For Thread-Local Storage, http://www.akkadia.org/drepper/tls.pdf, (6.2, p76) Differential revision: http://reviews.llvm.org/D14930 llvm-svn: 254090
* Add hexagonv55 and hexagonv60 as recognized CPUs, make v60 the defaultKrzysztof Parzyszek2015-11-256-36/+63
| | | | llvm-svn: 254089
* [ELF] - simplify Target interface, relocPointsToGot() removed.George Rimar2015-11-253-12/+3
| | | | | | | | | | | | https://docs.oracle.com/cd/E19683-01/817-3677/chapter6-26/index.html says: R_386_GOTPC Resembles R_386_PC32, except that it uses the address of the global offset table in its calculation. The symbol referenced in this relocation normally is _GLOBAL_OFFSET_TABLE_, which also instructs the link-editor to create the global offset table. Currently _GLOBAL_OFFSET_TABLE_ has value == zero. And we use GOT address to calculate the relocation. This patch does not changes that. It just removes the method which is used only for x86. So it is close to non functional change. Differential revision: http://reviews.llvm.org/D14993 llvm-svn: 254088
* AMDGPU: Add some tests for promotion of v2i64 scalar_to_vectorMatt Arsenault2015-11-251-0/+71
| | | | llvm-svn: 254087
* AMDGPU: Make v2i64/v2f64 legal types.Matt Arsenault2015-11-2512-183/+261
| | | | | | | They can be loaded and stored, so count them as legal. This is mostly to fix a number of common cases for load/store merging. llvm-svn: 254086
* Expose isXxxConstant() functions from SelectionDAGNodes.h (NFC)Artyom Skrobov2015-11-259-199/+122
| | | | | | | | | | | | | | Summary: Many target lowerings copy-paste the code to test SDValues for known constants. This code can instead be shared in SelectionDAG.cpp, and reused in the targets. Reviewers: MatzeB, andreadb, tstellarAMD Subscribers: arsenm, jyknight, llvm-commits Differential Revision: http://reviews.llvm.org/D14945 llvm-svn: 254085
* [WebAssembly] Use a physical register to describe ARGUMENT liveness.Dan Gohman2015-11-2511-39/+67
| | | | | | | | | | Instead of trying to move ARGUMENT instructions back up to the top after they've been scheduled or sunk down, use a fake physical register to create a liveness constraint that prevents ARGUMENT instructions from moving down in the first place. This is still not entirely ideal, however it is more robust than letting them move and moving them back. llvm-svn: 254084
* Stop using SFINAE to detect whether a derived-class override of Traverse* canRichard Smith2015-11-251-11/+11
| | | | | | | | | take a queue; some supported versions of GCC believe that this substitution failure is an error. Instead, use a partial specialization to detect the type of a pointer to the corresponding member. This is less general, but good enough for our uses. llvm-svn: 254083
* [CMake] [Darwin] libclang_rt.eprintf should be built with the same CFLAGS as ↵Chris Bieneman2015-11-251-2/+9
| | | | | | the other darwin builtin libraries. llvm-svn: 254082
OpenPOWER on IntegriCloud