summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AArch64] Add ARMv8.2-A ID_A64MMFR2_EL1 registerOliver Stannard2015-11-264-0/+12
| | | | | | | | | | ARMv8.2-A adds a new ID register, ID_A64MMFR2_EL1, which behaves in the same way as ID_A64MMFR0_EL1 and ID_A64MMFR1_EL1. It is a required part of ARMv8.2-A, so no additional subtarget features are required. Differential Revision: http://reviews.llvm.org/D15017 llvm-svn: 254155
* [AArch64] Add subtarget features for ARMv8.2-AOliver Stannard2015-11-264-5/+20
| | | | | | | | | | | | | | This adds subtarget features for ARMv8.2-A, which builds on (and requires the features from) ARMv8.1-A. Most assembler-visible features of ARMv8.2-A are system instructions, and are all required parts of the architecture, so just depend on the HasV8_2aOps subtarget feature. There is also one large, optional feature, which adds 16-bit floating point versions of all existing floating-point instructions (VFP and SIMD), this is represented by the FeatureFullFP16 subtarget feature. Differential Revision: http://reviews.llvm.org/D15013 llvm-svn: 254154
* Make some of the tests in TestRegisters.py arm compatibleTamas Berghammer2015-11-262-117/+101
| | | | | | Differential revision: http://reviews.llvm.org/D15010 llvm-svn: 254153
* Add 64/128 bit arm neon register definitions on linuxTamas Berghammer2015-11-267-65/+415
| | | | | | Differential revision: http://reviews.llvm.org/D14985 llvm-svn: 254152
* [compiler-rt] [tsan] Unify aarch64 mappingAdhemerval Zanella2015-11-268-225/+496
| | | | | | | | | | | | | This patch unify the 39 and 42-bit support for AArch64 by using an external memory read to check the runtime detected VMA and select the better mapping and transformation. Although slower, this leads to same instrumented binary to be independent of the kernel. Along with this change this patch also fix some 42-bit failures with ALSR disable by increasing the upper high app memory threshold and also the 42-bit madvise value for non large page set. llvm-svn: 254151
* IR cleanup after CodeGenerationMichael Kruse2015-11-265-2/+149
| | | | | | | | | | | | | | | | | | | | | | | | Re-run canonicalization passes after Polly's code generation. The set of passes currently added here are nearly all the passes between --polly-position=early and --polly-position=before-vectorizer, i.e. all passes that would usually run after Polly. In order to run these only if Polly actually modified the code, we add a function attribute "polly-optimzed" to a function that contains generated code. The cleanup pass is skipped if the function does not have this attribute. There is no support by the (legacy) PassManager to run passes only under some conditions. One could have wrapped all transformation passes to run only when CodeGeneration changed the code, but the analyses would run anyway. This patch creates an independent pass manager. The disadvantages are that all analyses have to re-run even if preserved and it does not honor compiler switches like the PassManagerBuilder does. Differential Revision: http://reviews.llvm.org/D14333 llvm-svn: 254150
* Introduce origin/kind for exit PHI node accessesMichael Kruse2015-11-263-5/+23
| | | | | | | | | | | | | | | Previously, accesses that originate from PHI nodes in the exit block were registered as SCALAR. In some context they are treated as scalars, but it makes a difference in others. We used to check whether the AccessInstruction is a terminator to differentiate the cases. This patch introduces an MemoryAccess origin EXIT_PHI and a ScopArrayInfo kind KIND_EXIT_PHI to make this case more explicit. No behavioural change intended. Differential Revision: http://reviews.llvm.org/D14688 llvm-svn: 254149
* [mips][ias] Explicitly disable IAS on tests that depend on not assembling.Daniel Sanders2015-11-263-124/+129
| | | | | | | | | | | | | | | | | | | | | Summary: no-odd-spreg-msa.ll: This test deliberately uses an odd-numbered register in inline assembly and expects the compiler to insert a move to an even-numbered register. inlineasm-operand-code.ll and inlineasm_constraint.ll: Checks for IAS's output will be added once a matcher bug is resolved. This bug causes the canonical output emitted by IAS to be incorrect for uimm16 constants with the MSB set. We will still need the non-IAS checks at this point since these tests primarily test formatting of operands. Reviewers: vkalintiris Subscribers: dsanders, llvm-commits Differential Revision: http://reviews.llvm.org/D14705 llvm-svn: 254148
* [mips][ias] Replace anchor comments with anchor instructions in tests.Daniel Sanders2015-11-262-44/+44
| | | | | | | | | | | | | | Summary: This is because IAS will delete the comments. NFC at the moment but it will prevent a failure once IAS is the default. Reviewers: vkalintiris Subscribers: llvm-commits, dsanders Differential Revision: http://reviews.llvm.org/D14704 llvm-svn: 254147
* [ELF/AArch64] Fix overflow checks for R_AARCH64_{ABS,PREL}{16,32} relocations.Igor Kudrin2015-11-2613-79/+134
| | | | | | | | | | ABI specifies the allowed range for these relocations as 2^(n-1) <= X < 2^n. The patch fixes checks and introduces precise tests for these relocations. Differential revision: http://reviews.llvm.org/D14957 llvm-svn: 254146
* [SimplifyLibCalls] Don't depend on a called function having a name, it might ↵Benjamin Kramer2015-11-264-11/+35
| | | | | | | | be an indirect call. Fixes the crasher in PR25651 and related crashers using the same pattern. llvm-svn: 254145
* [ELF] Factor out relocation checks into separate functions.Igor Kudrin2015-11-262-38/+43
| | | | | | | | It helps to standardize common checks and unify error messages. Differential revision: http://reviews.llvm.org/D14943 llvm-svn: 254144
* Fix for merging decls in pragma weakAlexander Musman2015-11-263-8/+28
| | | | | | | Calling CheckFunctionDeclaration so that 2 decls for the 'weak' are merged. Differential Revision: http://reviews.llvm.org/D13048 llvm-svn: 254143
* [X86] Strengthen more type constraints to reduce isel table size.Craig Topper2015-11-261-21/+33
| | | | llvm-svn: 254142
* [OPENMP 4.5] Fixed rules for 'ordered' clause.Alexey Bataev2015-11-263-10/+36
| | | | | | According to OpenMP 4.5 the parameter of 'ordered' clause must be greater than or equal to the parameter of 'collapse' clause. Patch adds this rule. llvm-svn: 254141
* X86-FMA3: Improved/enabled the memory folding optimization for scalar loadsVyacheslav Klochkov2015-11-263-13/+400
| | | | | | | | | | generated for _mm_losd_s{s,d}() intrinsics and used in scalar FMAs generated for FMA intrinsics _mm_f{madd,msub,nmadd,nmsub}_s{s,d}(). Reviewer: David Kreitzer Differential Revision: http://reviews.llvm.org/D14762 llvm-svn: 254140
* [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
OpenPOWER on IntegriCloud