summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [ARM] Add Cortex-A32 supportRenato Golin2016-03-214-2/+46
| | | | | | | | Adding Cortex-A32 as an available target in the ARM backend. Patch by Sam Parker. llvm-svn: 263956
* [llvm-readobj] Impl GNU style symbols printingHemant Kulkarni2016-03-213-40/+220
| | | | | | | | Implements "readelf -sW and readelf -DsW" Differential Revision: http://reviews.llvm.org/D18224 llvm-svn: 263952
* [Orc] Switch RPC Procedure to take a function type, rather than an arg list.Lang Hames2016-03-213-64/+58
| | | | | | No functional change, just a little more readable. llvm-svn: 263951
* APFloat: Add frexpMatt Arsenault2016-03-213-2/+161
| | | | llvm-svn: 263950
* AMDGPU: Add frexp_mant intrinsicMatt Arsenault2016-03-213-2/+70
| | | | llvm-svn: 263948
* Implement constant folding for bitreverseMatt Arsenault2016-03-215-2/+166
| | | | llvm-svn: 263945
* [AArch64] Fix a -Wdocumentation warning. NFC.Chad Rosier2016-03-211-2/+2
| | | | llvm-svn: 263942
* [IndVars] Fix PR26974: make sure replaceCongruentIVs doesn't break LCSSASilviu Baranga2016-03-212-0/+61
| | | | | | | | | | | | | | | | | | | Summary: replaceCongruentIVs can break LCSSA when trying to replace IV increments since it tries to replace all uses of a phi node with another phi node while both of the phi nodes are not necessarily in the processed loop. This will cause an assert in IndVars. To fix this, we add a check to make sure that the replacement maintains LCSSA. Reviewers: sanjoy Subscribers: mzolotukhin, llvm-commits Differential Revision: http://reviews.llvm.org/D18266 llvm-svn: 263941
* [DAGCombine] Catch the case where extract_vector_elt can cause an any_ext ↵Silviu Baranga2016-03-212-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | while processing AND SDNodes Summary: extract_vector_elt can cause an implicit any_ext if the types don't match. When processing the following pattern: (and (extract_vector_elt (load ([non_ext|any_ext|zero_ext] V))), c) DAGCombine was ignoring the possible extend, and sometimes removing the AND even though it was required to maintain some of the bits in the result to 0, resulting in a miscompile. This change fixes the issue by limiting the transformation only to cases where the extract_vector_elt doesn't perform the implicit extend. Reviewers: t.p.northover, jmolloy Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18247 llvm-svn: 263935
* Fixed -mcpu flagElena Demikhovsky2016-03-211-1/+1
| | | | | | "core-avx" does not exist; I changed to "nehalem" llvm-svn: 263932
* [X86][SSE] Add vector integer division by constant testsSimon Pilgrim2016-03-205-1241/+4954
| | | | | | Expanded tests and split into sdiv/srem and udiv/urem cases for 128 and 256 bit vectors. llvm-svn: 263917
* [NVPTX] Adds a new address space inference pass.Jingyue Wu2016-03-206-19/+678
| | | | | | | | | | | | | | | | | | | Summary: The old address space inference pass (NVPTXFavorNonGenericAddrSpaces) is unable to convert the address space of a pointer induction variable. This patch adds a new pass called NVPTXInferAddressSpaces that overcomes that limitation using a fixed-point data-flow analysis (see the file header comments for details). The new pass is experimental and not enabled by default. Users can turn it on by setting the -nvptx-use-infer-addrspace flag of llc. Reviewers: jholewinski, tra, jlebar Subscribers: jholewinski, llvm-commits Differential Revision: http://reviews.llvm.org/D17965 llvm-svn: 263916
* [gold] Emit a diagnostic in case we fail to remove a file.Davide Italiano2016-03-201-2/+6
| | | | llvm-svn: 263914
* [X86][SSE] Tidyup setTargetShuffleZeroElements to match ↵Simon Pilgrim2016-03-201-4/+4
| | | | | | | | computeZeroableShuffleElements Based on feedback for D14261 llvm-svn: 263911
* [X86][SSE] Detect zeroable shuffle elements from different value typesSimon Pilgrim2016-03-203-58/+81
| | | | | | | | Improve computeZeroableShuffleElements to be able to peek through bitcasts to extract zero/undef values from BUILD_VECTOR nodes of different element sizes to the shuffle mask. Differential Revision: http://reviews.llvm.org/D14261 llvm-svn: 263906
* AVX512BW: Enable v32i1/v64i1 BUILD_VECTORIgor Breger2016-03-202-0/+42
| | | | | | Differential Revision: http://reviews.llvm.org/D18211 llvm-svn: 263898
* [ELF] Update x86_64 relocations to 0.99.8 ABIGeorge Rimar2016-03-201-1/+2
| | | | | Added: R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX llvm-svn: 263894
* Suppress a -Wunused-variable warning in release builds.Craig Topper2016-03-201-0/+1
| | | | llvm-svn: 263892
* Use a range-based for loop. NFC.Michael Kuperstein2016-03-201-4/+4
| | | | llvm-svn: 263889
* Expose IRBuilder::CreateAtomicCmpXchg as LLVMBuildAtomicCmpXchg in the C API.Mehdi Amini2016-03-194-0/+91
| | | | | | | | | | | | | Summary: Also expose getters and setters in the C API, so that the change can be tested. Reviewers: nhaehnle, axw, joker.eph Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18260 From: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> llvm-svn: 263886
* Const-correctness in libLTOMehdi Amini2016-03-192-2/+2
| | | | | | | | Looks like I was sloppy when bridging to C. Thanks D. Blaikie for noticing! From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263885
* CodeGen: use range based for loopSaleem Abdulrasool2016-03-191-5/+4
| | | | | | Convert a loop to use a range based style loop. NFC. llvm-svn: 263884
* [SimplifyLibCalls] Only consider sinpi/cospi functions within the same functionDavid Majnemer2016-03-193-8/+36
| | | | | | | | | | The sinpi/cospi can be replaced with sincospi to remove unnecessary computations. However, we need to make sure that the calls are within the same function! This fixes PR26993. llvm-svn: 263875
* [InstCombine] Don't insert instructions before a catch switchDavid Majnemer2016-03-192-0/+40
| | | | | | | | | CatchSwitches are not splittable, we cannot insert casts, etc. before them. This fixes PR26992. llvm-svn: 263874
* Add a dependency from llvm-link to TransformUtils following r263860Mehdi Amini2016-03-192-1/+2
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263873
* [gold] Use early return to simplify.Davide Italiano2016-03-191-10/+5
| | | | llvm-svn: 263872
* Removed trailing whitespaceSimon Pilgrim2016-03-191-407/+407
| | | | llvm-svn: 263871
* Fix a const_cast related warning in GCC in the C API for libLTOMehdi Amini2016-03-191-1/+1
| | | | | From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263870
* Add a comment on partial hashing of MetadataMehdi Amini2016-03-191-0/+12
| | | | | | | Following r263866, on D. Blaikie suggestion. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263869
* [libFuzzer] one more trophieKostya Serebryany2016-03-191-1/+1
| | | | llvm-svn: 263868
* Hash Metadata using pointer for MDString argument instead of value (NFC)Mehdi Amini2016-03-193-140/+128
| | | | | | | | | | | MDString are uniqued in the Context on creation, hashing the pointer is less expensive than hashing the String itself. Reviewers: dexonsmith Differential Revision: http://reviews.llvm.org/D16560 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263867
* Compute some Debug Info Metadata hash key partially (NFC)Mehdi Amini2016-03-191-9/+4
| | | | | | | | | | | | | | | | | | | | | | Summary: This patch changes the computation of the hash key for DISubprogram to be computed on a small subset of the fields. The hash is computed a lot faster, but there might be more collision in the table. However by carefully selecting the fields, colisions should be rare. Using `opt` to load the IR for FastISelEmitter.cpp.o, with this patch: - DISubprogram::getImpl() goes from 28ms to 15ms. - DICompositeType::getImpl() goes from 6ms to 2ms - DIDerivedType::getImpl() goes from 18 to 12ms Reviewers: dexonsmith Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D16571 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263866
* Rework linkInModule(), making it oblivious to ThinLTOMehdi Amini2016-03-198-107/+69
| | | | | | | | | | | | | | | | | | | | | | | | Summary: ThinLTO is relying on linkInModule to import selected function. However a lot of "magic" was hidden in linkInModule and the IRMover, who would rename and promote global variables on the fly. This is moving to an approach where the steps are decoupled and the client is reponsible to specify the list of globals to import. As a consequence some test are changed because they were relying on the previous behavior which was importing the definition of *every* single global without control on the client side. Now the burden is on the client to decide if a global has to be imported or not. Reviewers: tejohnson Subscribers: joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D18122 From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263863
* Add a test for r263577: "Add missing error handling in llvm-lto"Mehdi Amini2016-03-192-1/+4
| | | | | | | | On Rafael's suggestion! (also fix a discrepancy between this error message format and the others) From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 263860
* [CXX_FAST_TLS] Fix issues in ARM.Manman Ren2016-03-182-6/+19
| | | | | | | | | We need to be careful on which registers can be explicitly handled via copies. Prologue, Epilogue use physical registers and if one belongs to the set of CSRsViaCopy, it will no longer be CSRed, since PEI overwrites it after the explicit copies. llvm-svn: 263857
* [CXX_FAST_TLS] Disable tail call when calling conventions are mismatched.Manman Ren2016-03-186-0/+60
| | | | | | | Since CXX_FAST_TLS has a bigger set of CSRs, we don't tail call when caller and callee have mismatched calling conventions. llvm-svn: 263856
* [CXX_FAST_TLS] fix issues with O0 on ARM, AArch64 and X86.Manman Ren2016-03-186-2/+221
| | | | | | | Since at O0, explicit copies via SplitCSR may not be removed even if they are unnecessary, we choose not to use SplitCSR at O0. llvm-svn: 263855
* AArch64: Don't modify other modules in AArch64PromoteConstantDuncan P. N. Exon Smith2016-03-181-148/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | Avoid modifying other modules in `AArch64PromoteConstant` when the constant is `ConstantData` (a horrible accident, I'm sure, caught by an experimental follow-up to r261464). Previously, this walked through all the users of a constant, but that reaches into other modules when the constant doesn't depend transitively on a `GlobalValue`! Since we're walking instructions anyway, just modify the instructions we actually see. As a drive-by, instead of storing `Use` and getting the instructions again via `Use::getUser()` (which is not a constantant time lookup), store `std::pair<Instruction, unsigned>`. Besides being cheaper, this makes it easier to drop use-lists form `ConstantData` in the future. (I threw this in because I was touching all the code anyway.) Because the patch completely changes the traversal logic, it looks like a rewrite of the pass, but the core logic is all the same (or should be, minus the out-of-module changes). In other words, there should be NFC as long as the LLVMContext only has a single Module. I didn't think of a good way to test this, but I hope to submit a patch eventually that makes walking these use-lists illegal/impossible. llvm-svn: 263853
* [sancov] clang-formatting SanitizerCoverage.cpp and fully pleasing clang-tidy.Mike Aizatsky2016-03-181-72/+78
| | | | | | Differential Revision: http://reviews.llvm.org/D18288 llvm-svn: 263852
* Have DataLayout::isLegalInteger() accept uint64_tMichael Kuperstein2016-03-182-2/+19
| | | | | | | | | | | | While not strictly necessary, since we don't support large integer types, this avoids bugs due to silent truncation from uint64_t to a 32-bit unsigned (e.g. DL.isLegalInteger(DL.getTypeSizeInBits(Ty) ) This fixes PR26972. Differential Revision: http://reviews.llvm.org/D18258 llvm-svn: 263850
* [sancov] typo fixMike Aizatsky2016-03-181-2/+2
| | | | llvm-svn: 263849
* [Support] Update comment to match actual behavior.Lang Hames2016-03-181-2/+1
| | | | llvm-svn: 263848
* Revert "Revert "[sancov] specifying sanitizer coverage dependencies.""Chandler Carruth2016-03-181-1/+7
| | | | | | This reverts commit r263825, re-instating r263797. llvm-svn: 263847
* [sancov] reformat & 1 clang-tidy warning.Mike Aizatsky2016-03-181-40/+40
| | | | llvm-svn: 263846
* [sancov] Fix the sancov pass to initialize itself inside itsChandler Carruth2016-03-181-1/+3
| | | | | | | constructor. This should fix the recent crashes on certain architectures. llvm-svn: 263845
* Fixing autocorrect changing cmake->makeChris Bieneman2016-03-181-3/+3
| | | | llvm-svn: 263843
* BPF: emit an error message for unsupported signed division operationAlexei Starovoitov2016-03-182-0/+21
| | | | | | Signed-off-by: Yonghong Song <yhs@plumgrid.com> Signed-off-by: Alexei Starovoitov <ast@fb.com> llvm-svn: 263842
* Missed a few non-ascii charactersChris Bieneman2016-03-181-2/+2
| | | | llvm-svn: 263841
* Updates based on post-commit review of r263834Chris Bieneman2016-03-183-4/+4
| | | | | | | * Renamed to be camel case, consistent with other docs. * Fixed non-ascii characters (this is what I get for writing docs on an iPad). llvm-svn: 263840
* [obj2yaml, COFF] Assert that the alignment is not bogusDavid Majnemer2016-03-181-0/+1
| | | | llvm-svn: 263839
OpenPOWER on IntegriCloud