summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Simplify std::all_of predicate (to one line) by using llvm::all_of. NFCI.Simon Pilgrim2016-05-251-2/+1
| | | | llvm-svn: 270749
* clang-cl: Treat dllimport explicit template instantiation definitions as ↵Hans Wennborg2016-05-253-17/+78
| | | | | | | | | | | declarations (PR27810, PR27811) This matches what MSVC does, and should make compiles faster by avoiding to unnecessarily emit a lot of code. Differential Revision: http://reviews.llvm.org/D20608 llvm-svn: 270748
* Simplify std::all_of predicate (to one line) by using llvm::all_of. NFCI.Simon Pilgrim2016-05-251-3/+1
| | | | llvm-svn: 270747
* Fix shouldAssumeDSOLocal for private linkage.Rafael Espindola2016-05-252-1/+9
| | | | llvm-svn: 270746
* Mark some arm-linux specific xfails marking bug entriesOmair Javaid2016-05-254-1/+5
| | | | | | | | TestCallUserAnonTypedef.py and TestIRInterpreter.py fail to limitation of JIT expressions in handling hard float ABI targets. TestBSDArchives.py fails due to python unicode error. TestBuiltinTrap.py fails due to wrong line information generated by some gcc versions. llvm-svn: 270745
* [libFuzzer] document the proposed FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTIONKostya Serebryany2016-05-251-0/+29
| | | | llvm-svn: 270744
* [IR] Copy comdats in GlobalObject::copyAttributesFromReid Kleckner2016-05-253-0/+20
| | | | | | | | | | | | | | This is probably correct for all uses except cross-module IR linking, where we need to move the comdat from the source module to the destination module. Fixes PR27870. Reviewers: majnemer Differential Revision: http://reviews.llvm.org/D20631 llvm-svn: 270743
* [llvm-pdbdump] Dump raw stream contents as binary block.Zachary Turner2016-05-251-2/+3
| | | | | | Dumping it as ASCII makes it fairly useless. llvm-svn: 270742
* TableGen: Use StringRef instead of std::stringMatt Arsenault2016-05-252-4/+4
| | | | llvm-svn: 270741
* AMDGPU: Fix v2i64/v2f64 bitcastsMatt Arsenault2016-05-252-1/+35
| | | | | | | These operations tend to get promoted away to v4i32 so this doesn't happen often. llvm-svn: 270740
* AMDGPU: Fix missing br_cc i1 test coverageMatt Arsenault2016-05-251-5/+44
| | | | | | Also un xfail a test. llvm-svn: 270739
* [SelectionDAG] Add smarts for BSWAP in computeKnownBits.Chad Rosier2016-05-252-0/+50
| | | | llvm-svn: 270738
* [esan][cfrag] Add skeleton for cache fragmentation tool supportQin Zhao2016-05-255-10/+89
| | | | | | | | | | | | | | | Summary: Adds cache_frag.h and cache_frag.cpp for the cache fragmentation tool. Updates test struct-simple.cpp. Reviewers: aizatsky Subscribers: filcab, zhaoqin, llvm-commits, eugenis, vitalybuka, kcc, bruening, kubabrecka Differential Revision: http://reviews.llvm.org/D20538 llvm-svn: 270737
* AMDGPU: Make vectorization defeating test changesMatt Arsenault2016-05-255-35/+33
| | | | | | Simplifies test updates in the future. llvm-svn: 270736
* [libcxx] Allow explicit pthread opt-inBen Craig2016-05-254-6/+18
| | | | | | | | | | | | | | | The existing pthread detection code in __config is pretty good for common operating systems. It doesn't allow cmake-time choices to be made for uncommon operating systems though. This change adds the LIBCXX_HAS_PTHREAD_API cmake flag, which turns into the _LIBCPP_HAS_THREAD_API_PTHREAD preprocessor define. This is a name change from the old _LIBCPP_THREAD_API_PTHREAD. The lit tests want __config_site.in variables to have a _LIBCPP_HAS prefix. http://reviews.llvm.org/D20573 llvm-svn: 270735
* [PM] CorrelatedValuePropagation: pass state to function. NFCI.Davide Italiano2016-05-251-29/+16
| | | | | | | While here, convert the logic of the pass to use static function(s). This is in preparation for porting this pass to the new PM. llvm-svn: 270734
* Allow explicit pthread opt-inBen Craig2016-05-251-0/+10
| | | | | | | | | | | | | | When building libcxxabi in tree (i.e. in llvm/projects/libcxxabi, along with llvm/projects/libcxx), libcxx's config_site.in doesn't get created in a timely manner. This means that any configuration that is normally set in libcxx's config_site.in needs to be duplicated in libcxxabi to successfully build libcxxabi. This patch does exactly that for the _LIBCPP_HAS_THREAD_API_PTHREAD preprocessor define. http://reviews.llvm.org/D20574 llvm-svn: 270732
* AMDGPU: Fix inconsistent lowering of select of vectorsMatt Arsenault2016-05-252-10/+81
| | | | | | | | | f32 vectors would use a sequence of BFI instructions instead of unrolled cmp + select. This was better in the case of a VALU select with SGPR inputs, but we don't have a way of dealing with that in the DAG. llvm-svn: 270731
* [profile] Further cleanup/refactor file handling codeXinliang David Li2016-05-251-34/+26
| | | | | | Also get rid of the redundant strncpy calls. llvm-svn: 270730
* [x86] avoid code explosion from LoopVectorizer for gather loop (PR27826) Sanjay Patel2016-05-252-2/+51
| | | | | | | | | | | | | | By making pointer extraction from a vector more expensive in the cost model, we avoid the vectorization of a loop that is very likely to be memory-bound: https://llvm.org/bugs/show_bug.cgi?id=27826 There are still bugs related to this, so we may need a more general solution to avoid vectorizing obviously memory-bound loops when we don't have HW gather support. Differential Revision: http://reviews.llvm.org/D20601 llvm-svn: 270729
* Use new triple API to check comdat /NFCXinliang David Li2016-05-251-1/+1
| | | | llvm-svn: 270728
* Use new triple API to check if comdat is supportedXinliang David Li2016-05-251-1/+1
| | | | llvm-svn: 270727
* Add a new helper API in triple /NFCXinliang David Li2016-05-251-0/+3
| | | | llvm-svn: 270726
* [obj2yaml] [yaml2obj] MachO support for rebase opcodesChris Bieneman2016-05-255-21/+264
| | | | | | This is the first bit of support for MachO __LINKEDIT segment data. llvm-svn: 270724
* [CMake] LINK_LIBS need to be public for Darwin dylib targetsChris Bieneman2016-05-252-12/+18
| | | | | | This should actually address PR27855. This results in adding references to the system libs inside generated dylibs so that they get correctly pulled in when linking against the dylib. llvm-svn: 270723
* Move and add comments to the top for tailcall-string-rvo.llTim Shen2016-05-251-5/+8
| | | | | | Differential Revision: http://reviews.llvm.org/D20311 llvm-svn: 270722
* [ELF] - Added support for jmp/call relaxations when ↵George Rimar2016-05-252-9/+59
| | | | | | | | | | | | | | R_X86_64_GOTPCRELX/R_X86_64_REX_GOTPCRELX are used. D15779 introduced basic approach to support new relaxations. This patch implements relaxations for jmp and call instructions, described in System V Application Binary Interface AMD64 Architecture Processor Supplement Draft Version 0.99.8 (https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-r249.pdf, B.2 "B.2 Optimize GOTPCRELX Relocations") Differential revision: http://reviews.llvm.org/D20622 llvm-svn: 270721
* [SDAG] Add a fallback multiplication expansionHal Finkel2016-05-252-1/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | LegalizeIntegerTypes does not have a way to expand multiplications for large integer types (i.e. larger than twice the native bit width). There's no standard runtime call to use in that case, and so we'd just assert. Unfortunately, as it turns out, it is possible to hit this case from standard-ish C code in rare cases. A particular case a user ran into yesterday involved an __int128 induction variable and a loop with a quadratic (not linear) recurrence which triggered some backend logic using SCEVExpander. In this case, the BinomialCoefficient code in SCEV generates some i129 variables, which get widened to i256. At a high level, this is not actually good (i.e. the underlying optimization, PPCLoopPreIncPrep, should not be transforming the loop in question for performance reasons), but regardless, the backend shouldn't crash because of cost-modeling issues in the optimizer. This is a straightforward implementation of the multiplication expansion, based on the algorithm in Hacker's Delight. I validated it against the code for the mul256b function from http://locklessinc.com/articles/256bit_arithmetic/ using random inputs. There should be no functional change for previously-working code (the new expansion code only replaces an assert). Fixes PR19797. llvm-svn: 270720
* [ThinLTO] Fix test check prefix so that intended prefix testedTeresa Johnson2016-05-251-1/+1
| | | | | | | There aren't any checks with prefix PROMOTE, should be PROMOTE_MOD1 which wasn't being tested (but works as expected). llvm-svn: 270719
* [x86, AVX] allow explicit calls to VZERO* to modify state in ↵Sanjay Patel2016-05-252-11/+9
| | | | | | | | | | VZeroUpperInserter pass (PR27823) As noted in the review, there are still problems, so this doesn't the bug completely. Differential Revision: http://reviews.llvm.org/D20529 llvm-svn: 270718
* Make SectionPiece 8 bytes smaller on LP64.Rui Ueyama2016-05-252-12/+23
| | | | | | | | | | | | This patch makes SectionPiece class 8 bytes smaller on platforms on which pointer size is 8 bytes. Sean suggested in a post commit review for r270340 that this could make a differentce, and it actually is. Time to link clang (with debug info) improved from 6.725 seconds to 6.589 seconds or by about 2%. Differential Revision: http://reviews.llvm.org/D20613 llvm-svn: 270717
* [RuntimeDyld] Call the SymbolResolver::findSymbolInLogicalDylib method whenLang Hames2016-05-258-56/+52
| | | | | | | | | | | | | | | | | searching for external symbols, and fall back to the SymbolResolver::findSymbol method if the former returns null. This makes RuntimeDyld behave more like a static linker: Symbol definitions from within the current module's "logical dylib" will be preferred to external definitions. We can build on this behavior in the future to properly support weak symbol handling. Custom symbol resolvers that override the findSymbolInLogicalDylib method may notice changes due to this patch. Clients who have not overridden this method should generally be unaffected, however users of the OrcMCJITReplacement class may notice changes. llvm-svn: 270716
* Clarify that we match BSwap in InstCombine and BitReverse in CGP. NFC.Chad Rosier2016-05-255-10/+10
| | | | | | | | Also, rename recognizeBitReverseOrBSwapIdiom to recognizeBSwapOrBitReverseIdiom, so the ordering of the MatchBSwaps and MatchBitReversals arguments are consistent with the function name. llvm-svn: 270715
* Speed up check by using a recursive visitor.Samuel Benzaquen2016-05-252-66/+84
| | | | | | | | | | | | | | | | Summary: Use a recursive visitor instead of forEachDescendant() matcher. The latter requires several layers of virtual function calls for each node and it is more expensive than the visitor. Benchmark results show improvement of ~6% walltime in clang-tidy. Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20597 llvm-svn: 270714
* [tsan] Change some OS X tests to include system headers (xpc.h, mman.h) more ↵Kuba Brecka2016-05-253-3/+7
| | | | | | explicitly. llvm-svn: 270713
* Do not ignore --no_ctors_in_init_array flag.Rui Ueyama2016-05-251-1/+0
| | | | | | That flag is probably too dangerous to ignore silently. llvm-svn: 270711
* [X86][AVX] Sync with clang/test/CodeGen/avx2-builtins.cSimon Pilgrim2016-05-251-98/+1659
| | | | | | Only tests for the gather intrinsic are still to be added llvm-svn: 270710
* ELF: improve CIE no-augmentation testEd Maste2016-05-251-0/+7
| | | | | | | | | | | | | Add another possible error that may be reported for the same case. The original reproduction case that prompted r270706 produced the error "corrupted CIE" instead of "corrupted or unsupported CIE information". The specific error depends on arbitrary data later in the file so check that neither is emitted in case the input is ever changed. Document the process used to create the input .o and rename the test file to .s, as requested by Rafael. llvm-svn: 270709
* [X86][AVX2] Full set of AVX2 intrinsics testsSimon Pilgrim2016-05-251-600/+745
| | | | | | llvm/test/CodeGen/X86/avx2-intrinsics-fast-isel.ll will be synced to this llvm-svn: 270708
* [Clang][AVX512][Builtin] Fix palignr intrinsics headerMichael Zuckerman2016-05-251-3/+3
| | | | | | Differential Revision: http://reviews.llvm.org/D20620 llvm-svn: 270707
* ELF: Handle empty CIE augmentation stringEd Maste2016-05-253-1/+11
| | | | | | | | | | | "A zero length string indicates that no augmentation data is present." The FreeBSD/mips toolchain (GCC 4.2.1) generates .debug_frame sections containing CIE records that have an empty augmentation string. Differential Revision: http://reviews.llvm.org/D19928 llvm-svn: 270706
* [ELF] - Implemented optimization for R_X86_64_GOTPCREL relocation.George Rimar2016-05-258-6/+199
| | | | | | | | | | | | | | | | System V Application Binary Interface AMD64 Architecture Processor Supplement Draft Version 0.99.8 (https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-r249.pdf, B.2 "B.2 Optimize GOTPCRELX Relocations") introduces possible relaxations for R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX. That patch implements the next relaxation: mov foo@GOTPCREL(%rip), %reg => lea foo(%rip), %reg and also opens door for implementing all other ones. Implementation was suggested by Rafael Ávila de Espíndola with few additions and testcases by myself. Differential revision: http://reviews.llvm.org/D15779 llvm-svn: 270705
* [AVX512] Don't rely on value names. They're different in release builds.Benjamin Kramer2016-05-251-9/+9
| | | | llvm-svn: 270704
* [include-fixer] /usr/include/xlocal.h to include/xlocal.h in hardcoded map.Eric Liu2016-05-251-1/+1
| | | | llvm-svn: 270703
* Fix mangled name of method with ns_consumed parameters.Nico Weber2016-05-254-10/+21
| | | | | | | | | | | | | | | | | | | | | | | When a function/method use a parameter with "ns_consumed" attribute, ensure that the mangled name is the same whether -fobjc-arc is used or not. Since "ns_consumed" attribute is generally used to inform ARC that a function/method does sink the reference, it mean it is usually implemented in a compilation unit compiled without -fobjc-arc but used form a compilation unit compiled with it. Originally found while trying to use "ns_consumed" attribute in an Objective-C++ file in Chromium (http://crbug.com/599980) where it caused a linker error. Regression introduced by revision 262278 (previously the attribute was incorrectly not part of the mangled name). Patch from Sylvain Defresne <sdefresne@chromium.org>! http://reviews.llvm.org/D20113 llvm-svn: 270702
* Include local header with quotes instead of angle brackets.Benjamin Kramer2016-05-251-1/+1
| | | | | | This works by accident because we pass '-I.' llvm-svn: 270701
* [include-fixer] Simplify the code since we won't handle multiple includes at ↵Haojian Wu2016-05-251-32/+12
| | | | | | | | | | | | once. Reviewers: bkramer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20581 llvm-svn: 270700
* [Clang][AVX512][BUILTIN] Add missing intrinsics for castMichael Zuckerman2016-05-252-11/+125
| | | | | | Differential Revision: http://reviews.llvm.org/D20523 llvm-svn: 270699
* [ThinLTO] Refactor ODR resolution and internalization (NFC)Teresa Johnson2016-05-255-174/+211
| | | | | | | | | Move the now index-based ODR resolution and internalization routines out of ThinLTOCodeGenerator.cpp and into either LTO.cpp (index-based analysis) or FunctionImport.cpp (index-driven optimizations). This is to enable usage by other linkers. llvm-svn: 270698
* Fix braced initializer list (NFC)Teresa Johnson2016-05-251-1/+1
| | | | | | | | | | | | | | After r270617 I am getting an error when building: projects/compiler-rt/lib/profile/InstrProfilingFile.c:33:36: error: missing field 'PidChars' initializer [-Werror,-Wmissing-field-initializers] lprofFilename lprofCurFilename = {0}; ^ Fix the aggregate initializer. llvm-svn: 270697
OpenPOWER on IntegriCloud