summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* llvm-ar: Don't add an unnecessary alignment in gnu mode.Rafael Espindola2017-09-222-1/+10
| | | | | | | This is mostly for getting stricter testing in preparation for future changes. llvm-svn: 314000
* Removed platform-specific ifdefs from sanitizer_procmaps.hFrancis Ricci2017-09-227-132/+132
| | | | | | | | | | | | | | | | Summary: Removed platform-specific ifdefs for linux, mac, freebsd and netbsd from sanitizer_procmaps.h Patch by Yicheng Wang <yichengfb@fb.com> Reviewers: kcc, kubamracek, alekseyshl, fjricci, vitalybuka Reviewed By: fjricci, vitalybuka Subscribers: vitalybuka, emaste, krytarowski, llvm-commits Differential Revision: https://reviews.llvm.org/D38098 llvm-svn: 313999
* [Falkor] Add falkor CPU to host detectionBalaram Makam2017-09-222-0/+4
| | | | | | This returns "falkor" for Falkor CPU. llvm-svn: 313998
* [index] Generate class & metaclass manglings for objcDave Lee2017-09-226-7/+88
| | | | | | | | | | | | | | | | | | | | | | | Summary: ObjC classes have two associated symbols, one for the class and one for the metaclass. This change overloads `CodegenNameGenerator::getAllManglings` to produce both class and metaclass symbols. While this function is called by `clang_Cursor_getCXXManglings`, it's only called for CXXRecordDecl and CXXMethodDecl, and so libclang's behavior is unchanged. Reviewers: arphaman, abdulras, alexshap, compnerd Reviewed By: compnerd Subscribers: compnerd Differential Revision: https://reviews.llvm.org/D37671 llvm-svn: 313997
* Remove trailing whitespace. NFCI.Simon Pilgrim2017-09-222-13/+13
| | | | llvm-svn: 313996
* [OPENMP] Handle re-declaration of captured variables in CodeGen.Alexey Bataev2017-09-222-4/+4
| | | | | | | | | If the captured variable has re-declaration we may end up with the situation where the captured variable is the re-declaration while the referenced variable is the canonical declaration (or vice versa). In this case we may generate wrong code. Patch fixes this situation. llvm-svn: 313995
* Check vector elements for equivalence in the HexagonVectorLoopCarriedReuse passPranav Bhandarkar2017-09-222-0/+101
| | | | | | | | | If the two instructions being compared for equivalence have corresponding operands that are integer constants, then check their values to determine equivalence. Patch by Suyog Sarda! llvm-svn: 313993
* [Atomic][X8664] set max atomic inline width according to the targetWei Mi2017-09-228-13/+92
| | | | | | | | | | | This is to fix PR31620. MaxAtomicInlineWidth is set to 128 for x86_64. However for target without cx16 support, 128 atomic operation will generate __sync_* libcalls. The patch set MaxAtomicInlineWidth to 64 if the target doesn't support cx16. Differential Revision: https://reviews.llvm.org/D38046 llvm-svn: 313992
* Fix unused variable warning. NFCI.Simon Pilgrim2017-09-221-2/+1
| | | | llvm-svn: 313991
* Revert "[TableGen] Replace InfoByHwMode::getAsString with writeToStream"Krzysztof Parzyszek2017-09-225-53/+33
| | | | | | This reverts commit r313989: it breaks Windows bots. llvm-svn: 313990
* [TableGen] Replace InfoByHwMode::getAsString with writeToStreamKrzysztof Parzyszek2017-09-225-33/+53
| | | | | | | Also add operator<< for use with raw_ostream to InfoByHwMode and its derived classes. llvm-svn: 313989
* [SCEV] Generalize folding of trunc(x)+n*trunc(y) into folding ↵Daniel Neilson2017-09-222-6/+49
| | | | | | | | | | | | | | | | | | | | | | | | | m*trunc(x)+n*trunc(y) Summary: A SCEV such as: {%v2,+,((-1 * (trunc i64 (-1 * %v1) to i32)) + (-1 * (trunc i64 %v1 to i32)))}<%loop> can be folded into, simply, {%v2,+,0}. However, the current code in ::getAddExpr() will not try to apply the simplification m*trunc(x)+n*trunc(y) -> trunc(trunc(m)*x+trunc(n)*y) because it only keys off having a non-multiplied trunc as the first term in the simplification. This patch generalizes this code to try to do a more generic fold of these trunc expressions. Reviewers: sanjoy Reviewed By: sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37888 llvm-svn: 313988
* [scudo] Scudo thread specific data refactor, part 1Kostya Kortchinsky2017-09-228-100/+90
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: We are going through an overhaul of Scudo's TSD, to allow for new platforms to be integrated more easily, and make the code more sound. This first part is mostly renaming, preferring some shorter names, correcting some comments. I removed `getPrng` and `getAllocatorCache` to directly access the members, there was not really any benefit to them (and it was suggested by Dmitry in D37590). The only functional change is in `scudo_tls_android.cpp`: we enforce bounds to the `NumberOfTSDs` and most of the logic in `getTSDAndLockSlow` is skipped if we only have 1 TSD. Reviewers: alekseyshl, dvyukov, kcc Reviewed By: dvyukov Subscribers: llvm-commits, srhines Differential Revision: https://reviews.llvm.org/D38139 llvm-svn: 313987
* [x86] remove unnecessary OS specifier from testSanjay Patel2017-09-221-190/+178
| | | | llvm-svn: 313986
* [x86] auto-generate complete checks; NFCSanjay Patel2017-09-221-15/+59
| | | | llvm-svn: 313985
* [x86] update test to use FileCheck; NFCSanjay Patel2017-09-221-1/+17
| | | | llvm-svn: 313984
* [TableGen] Return StringRef from ValueTypeByHwMode::getMVTNameSimon Pilgrim2017-09-222-6/+5
| | | | | | | | | | Avoid unnecessary std::string creations during TypeSetByHwMode::writeToStream. Found during investigations into PR28222 Differential Revision: https://reviews.llvm.org/D38174 llvm-svn: 313983
* [X86] Combining CMOVs with [ANY,SIGN,ZERO]_EXTEND for cases where CMOV has ↵Alexander Ivchenko2017-09-224-124/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | constant arguments Combine CMOV[i16]<-[SIGN,ZERO,ANY]_EXTEND to [i32,i64] into CMOV[i32,i64]. One example of where it is useful is: before (20 bytes) <foo>: test $0x1,%dil mov $0x307e,%ax mov $0xffff,%cx cmovne %ax,%cx movzwl %cx,%eax retq after (18 bytes) <foo>: test $0x1,%dil mov $0x307e,%ecx mov $0xffff,%eax cmovne %ecx,%eax retq Reviewers: craig.topper, aaboud, spatel, RKSimon, zvi Reviewed By: spatel Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D36711 llvm-svn: 313982
* Rework loop predication passArtur Pilipenko2017-09-224-184/+506
| | | | | | | | | | | | | | | | | | | | | | | We've found a serious issue with the current implementation of loop predication. The current implementation relies on SCEV and this turned out to be problematic. To fix the problem we had to rework the pass substantially. We have had the reworked implementation in our downstream tree for a while. This is the initial patch of the series of changes to upstream the new implementation. For now the transformation is limited to the following case: * The loop has a single latch with either ult or slt icmp condition. * The step of the IV used in the latch condition is 1. * The IV of the latch condition is the same as the post increment IV of the guard condition. * The guard condition is ult. See the review or the LoopPredication.cpp header for the details about the problem and the new implementation. Reviewed By: sanjoy, mkazantsev Differential Revision: https://reviews.llvm.org/D37569 llvm-svn: 313981
* Remove the default clause from a fully-covering switchNemanja Ivanovic2017-09-221-4/+10
| | | | | | | to appease bots that use a compiler that warns about this and use -Werror. llvm-svn: 313980
* [ARM] Fix assembly and disassembly for VMRS/VMSRAndre Vieira2017-09-226-35/+434
| | | | | | | Reviewed by: t.p.northover Differential Revision: https://reviews.llvm.org/D36306 llvm-svn: 313979
* Recommit r310809 with a fix for the spill problemNemanja Ivanovic2017-09-2226-147/+1121
| | | | | | | | | | This patch re-commits the patch that was pulled out due to a problem it caused, but with a fix for the problem. The fix was reviewed separately by Eric Christopher and Hal Finkel. Differential Revision: https://reviews.llvm.org/D38054 llvm-svn: 313978
* polly-update-format after change in clang-format. NFC.Michael Kruse2017-09-221-1/+1
| | | | | | r313963 changed the sorting of using-declarations. llvm-svn: 313976
* Add Cross Translation Unit support libraryGabor Horvath2017-09-2222-2/+827
| | | | | | | | | | | | | | | | | | This patch introduces a class that can help to build tools that require cross translation unit facilities. This class allows function definitions to be loaded from external AST files based on an index. In order to use this functionality an index is required. The index format is a flat text file but it might be replaced with a different solution in the near future. USRs are used as names to look up the functions definitions. This class also does caching to avoid redundant loading of AST files. Right now only function defnitions can be loaded using this API because this is what the in progress cross translation unit feature of the Static Analyzer requires. In to future this might be extended to classes, types etc. Differential Revision: https://reviews.llvm.org/D34512 llvm-svn: 313975
* [asan/lsan] Trying to fix PPC64 and x380x buildbots after r313966Maxim Ostapenko2017-09-221-1/+1
| | | | llvm-svn: 313974
* [analyzer] Add new delete with non-virtual destructor checkGabor Horvath2017-09-224-0/+346
| | | | | | | | Patch by: Reka Nikolett Kovacs Differential Revision: https://reviews.llvm.org/D35796 llvm-svn: 313973
* [ARM] Add missing selection patterns for vnmlaSimon Pilgrim2017-09-222-2/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For the following function: double fn1(double d0, double d1, double d2) { double a = -d0 - d1 * d2; return a; } on ARM, LLVM generates code along the lines of vneg.f64 d0, d0 vmls.f64 d0, d1, d2 i.e., a negate and a multiply-subtract. The attached patch adds instruction selection patterns to allow it to generate the single instruction vnmla.f64 d0, d1, d2 (multiply-add with negation) instead, like GCC does. Committed on behalf of @gergo- (Gergö Barany) Differential Revision: https://reviews.llvm.org/D35911 llvm-svn: 313972
* [dwarfdump] Fix ambiguous call to make_uniqueJonas Devlieghere2017-09-221-2/+2
| | | | | | | | Fix buildbot failures: - http://lab.llvm.org:8011/builders/lldb-x86-windows-msvc2015/builds/13153 - http://lab.llvm.org:8011/builders/lld-x86_64-win7/builds/13566 llvm-svn: 313971
* [obj2yaml] Don't crash for input files without symbol tableAlexander Richardson2017-09-223-0/+7
| | | | | | | | | | | | Summary: Previously we would dereference Symtab without checking for null. Reviewers: davide, atanasyan, rafael Reviewed By: davide, atanasyan Differential Revision: https://reviews.llvm.org/D38080 llvm-svn: 313970
* [dwarfdump] Add support for redirecting output to a fileJonas Devlieghere2017-09-222-24/+47
| | | | | | | | | This patch adds the -o and --out-file options for compatibility with Darwin's dwarfdump. Differential revision: https://reviews.llvm.org/D38125 llvm-svn: 313969
* [mips] clang-format MipsTargetMachine.cppAlexander Richardson2017-09-221-3/+3
| | | | | | This is my test commit as it only changes two lines llvm-svn: 313968
* [asan/lsan] Trying to fix buildbots after r313966Maxim Ostapenko2017-09-221-0/+1
| | | | llvm-svn: 313967
* [asan/lsan] Make LSan compliant with recovery mode when running on top of ASanMaxim Ostapenko2017-09-224-1/+29
| | | | | | | | | | | Don't overwrite exit code in LSan when running on top of ASan in recovery mode to avoid breakage of users code due to found leaks. Patch by Slava Barinov. Differential Revision: https://reviews.llvm.org/D38026 llvm-svn: 313966
* [AVR] Remove the 'IsN64' argument to 'MCELFObjectWriter'Dylan McKay2017-09-221-1/+1
| | | | | | This has since been removed. llvm-svn: 313965
* [X86] Updating the test case for FMF propagation.Jatin Bhateja2017-09-221-2/+14
| | | | | | Differential Revision: https://reviews.llvm.org/D38163 llvm-svn: 313964
* [clang-format] Ignore case and stable sort using-declarationsKrasimir Georgiev2017-09-222-2/+74
| | | | | | | | | | | | | | | | Summary: This ignores case while sorting using-declarations, fixing a case where `_` would appear between lowercase and uppercase characters. It also applies stable sort, so that replacements for the exact same using declarations are not generated. Reviewers: klimek, alexfh Reviewed By: alexfh Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D37263 llvm-svn: 313963
* [clang-tidy] Fix example in documentation, NFCKrasimir Georgiev2017-09-221-1/+1
| | | | | | | | | | | | | | Summary: A fix in documentation. Reviewers: bkramer Reviewed By: bkramer Subscribers: JDevlieghere, xazax.hun Differential Revision: https://reviews.llvm.org/D38087 llvm-svn: 313962
* bpf: initial 32-bit ALU encoding support in assemblerYonghong Song2017-09-223-46/+116
| | | | | | | | | | | | | | This patch adds instruction patterns for operations in BPF_ALU. After this, assembler could recognize some 32-bit ALU statement. For example, those listed int the unit test file. Separate MOV patterns are unnecessary as MOV is ALU operation that could reuse ALU encoding infrastructure, this patch removed those redundant patterns. Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Jiong Wang <jiong.wang@netronome.com> Reviewed-by: Yonghong Song <yhs@fb.com> llvm-svn: 313961
* bpf: add 32bit register setYonghong Song2017-09-221-21/+32
| | | | | | | Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Jiong Wang <jiong.wang@netronome.com> Reviewed-by: Yonghong Song <yhs@fb.com> llvm-svn: 313960
* bpf: refactor inst patterns with better inheritanceYonghong Song2017-09-221-111/+127
| | | | | | | | | | | | | | | | | Arithmetic and jump instructions, load and store instructions are sharing the same 8-bit code field encoding, A better instruction pattern implemention could be the following inheritance relationships, and each layer only encoding those fields which start to diverse from that layer. This avoids some redundant code. InstBPF -> TYPE_ALU_JMP -> ALU/JMP InstBPF -> TYPE_LD_ST -> Load/Store Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Jiong Wang <jiong.wang@netronome.com> Reviewed-by: Yonghong Song <yhs@fb.com> llvm-svn: 313959
* bpf: refactor inst patterns with more mnemonicsYonghong Song2017-09-222-185/+189
| | | | | | | | | | | Currently, eBPF backend is using some constant directly in instruction patterns, This patch replace them with mnemonics and removed some unnecessary temparary variables. Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Jiong Wang <jiong.wang@netronome.com> Reviewed-by: Yonghong Song <yhs@fb.com> llvm-svn: 313958
* Closure types have no name (and can't have a typedef name for linkageRichard Smith2017-09-222-18/+12
| | | | | | purposes), so they never formally have linkage. llvm-svn: 313957
* AArch64: support SwiftCC properly on AAPCS64Saleem Abdulrasool2017-09-222-0/+21
| | | | | | | | | The previous SwiftCC support for AAPCS64 was partially correct. It setup swiftself parameters in the proper register but failed to setup swifterror in the correct register. This would break compilation of swift code for non-Darwin AAPCS64 conforming environments. llvm-svn: 313956
* Give external linkage and mangling to lambdas inside inline variables and ↵Richard Smith2017-09-2210-112/+160
| | | | | | | | | | | variable templates. This implements the proposed approach in https://github.com/itanium-cxx-abi/cxx-abi/issues/33 This reinstates r313827, reverted in r313856, with a fix for the 'out-of-bounds enumeration value' ubsan error in that change. llvm-svn: 313955
* Driver: remove support for libstdc++ from CrossWindowsSaleem Abdulrasool2017-09-222-44/+3
| | | | | | | This code path is entirely untested and not really maintained. The expected use here is with libc++ only. llvm-svn: 313954
* Clean up some mistreatment of enumerations.Richard Smith2017-09-223-70/+74
| | | | llvm-svn: 313953
* Add test cases that weren't committed in r313945.Akira Hatanaka2017-09-224-0/+253
| | | | llvm-svn: 313952
* Rename markAsErased to erase, as pointed out in a previous review; NFCSanjoy Das2017-09-226-7/+7
| | | | llvm-svn: 313951
* [Analyzer] Static analyzer script for updating reference resultsGeorge Karpenkov2017-09-221-0/+64
| | | | | | | | The script updates reference results from the previous run, and stages them. Differential Revision: https://reviews.llvm.org/D38157 llvm-svn: 313950
* [Analyzer] Refactor analyzer testing scripts.George Karpenkov2017-09-223-88/+75
| | | | | | | | | | | | | - Exporting needed function for future reuse. - Idiomatic python: using with `file as f` instead of `try/finally`. - Fixing some indentation issues. - No need to reinvent python `multiprocessing.getCPUCount()` - Removing a function parameter which is always the same under all invocations. - Adding some docstrings. Differential Revision: https://reviews.llvm.org/D38156 llvm-svn: 313949
OpenPOWER on IntegriCloud