summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [ARM] Option for reading thread pointer from coprocessor registerStrahinja Petrovic2017-09-126-0/+51
| | | | | | | | | This patch enables option for reading thread pointer directly from coprocessor register (-mtp=soft/cp15). Differential Revision: https://reviews.llvm.org/D34878 llvm-svn: 313018
* [AArch64] ISel: Add some debug messages to LowerBUILDVECTOR. NFC.Sjoerd Meijer2017-09-121-19/+59
| | | | | | Differential Revision: https://reviews.llvm.org/D37676 llvm-svn: 313017
* [clang-tidy] SuspiciousEnumUsageCheck bugfixPeter Szecsi2017-09-122-3/+11
| | | | | | | | | | | iThere is a reported bug on the checker not handling the some APSInt values correctly: https://bugs.llvm.org/show_bug.cgi?id=34400 This patch aims to fix it. Differential Revision: https://reviews.llvm.org/D37572 llvm-svn: 313016
* [ELF] Rename variables and add comments to getISThunkSec [NFC]Peter Smith2017-09-122-16/+19
| | | | | | | | | | Replace OutputSection *Cmd to OutputSection *OS. The Commands vector was moved to OutputSection but the names of the variables were not. This patch changes the names to match. Differential Revision: https://reviews.llvm.org/D37627 llvm-svn: 313015
* Fix recording preamble's conditional stack in skipped PP branches.Ilya Biryukov2017-09-123-9/+18
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This fixes PR34547. `Lexer::LexEndOfFile` handles recording of ConditionalStack for preamble and reporting errors about unmatched conditionalal PP directives. However, SkipExcludedConditionalBlock contianed duplicated logic for reporting errors and clearing ConditionalStack, but not for preamble recording. This fix removes error reporting logic from `SkipExcludedConditionalBlock`, unmatched PP conditionals are now reported inside `Lexer::LexEndOfFile`. Reviewers: erikjv, klimek, bkramer Reviewed By: erikjv Subscribers: nik, cfe-commits Differential Revision: https://reviews.llvm.org/D37700 llvm-svn: 313014
* [X86] Lower _mm[256|512]_[mask[z]]_avg_epu[8|16] intrinsics to native llvm IRYael Tsafrir2017-09-1221-336/+1170
| | | | | | Differential Revision: https://reviews.llvm.org/D37560 llvm-svn: 313013
* [LAA] Allow more run-time alias checks by coercing pointer expressions to ↵Silviu Baranga2017-09-122-27/+203
| | | | | | | | | | | | | | | | | | | | | | AddRecExprs Summary: LAA can only emit run-time alias checks for pointers with affine AddRec SCEV expressions. However, non-AddRecExprs can be now be converted to affine AddRecExprs using SCEV predicates. This change tries to add the minimal set of SCEV predicates in order to enable run-time alias checking. Reviewers: anemet, mzolotukhin, mkuper, sanjoy, hfinkel Reviewed By: hfinkel Subscribers: mssimpso, Ayal, dorit, roman.shirokiy, mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D17080 llvm-svn: 313012
* [X86] Lower _mm[256|512]_[mask[z]]_avg_epu[8|16] intrinsics to native llvm IRYael Tsafrir2017-09-129-56/+178
| | | | | | Differential Revision: https://reviews.llvm.org/D37562 llvm-svn: 313011
* [ARM] Fix typo when creating ISD::SUB nodesRoger Ferrer Ibanez2017-09-121-5/+5
| | | | | | | | | | | | | In D35192, I accidentally introduced a typo when creating ISD::SUB nodes, giving them two values instead of one. This fails when the merge_values combiner finds one of these nodes. This change fixes PR34564. Differential Revision: https://reviews.llvm.org/D37690 llvm-svn: 313010
* [ARM] Use ADDCARRY / SUBCARRYRoger Ferrer Ibanez2017-09-124-35/+294
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is a preparatory step for D34515 and also is being recommitted as its first version caused PR34045. This change: - makes nodes ISD::ADDCARRY and ISD::SUBCARRY legal for i32 - lowering is done by first converting the boolean value into the carry flag using (_, C) ← (ARMISD::ADDC R, -1) and converted back to an integer value using (R, _) ← (ARMISD::ADDE 0, 0, C). An ARMISD::ADDE between the two operations does the actual addition. - for subtraction, given that ISD::SUBCARRY second result is actually a borrow, we need to invert the value of the second operand and result before and after using ARMISD::SUBE. We need to invert the carry result of ARMISD::SUBE to preserve the semantics. - given that the generic combiner may lower ISD::ADDCARRY and ISD::SUBCARRYinto ISD::UADDO and ISD::USUBO we need to update their lowering as well otherwise i64 operations now would require branches. This implies updating the corresponding test for unsigned. - add new combiner to remove the redundant conversions from/to carry flags to/from boolean values (ARMISD::ADDC (ARMISD::ADDE 0, 0, C), -1) → C - fixes PR34045 Differential Revision: https://reviews.llvm.org/D35192 llvm-svn: 313009
* [X86] Add an extra instruction to TruncAssertSext.ll to prevent the 'or' ↵Craig Topper2017-09-121-4/+8
| | | | | | | | | | from being narrowed so that the movl is really required to avoid a miscompile. If we allow the OR to be narrowed then the upper bits really are zero and we can't tell if the zeroing movl was removed on purpose. While here regenerate the test with update_llc_test_checks.py llvm-svn: 312995
* Remove unneccessary string copies from method invocations.Vlad Tsyrklevich2017-09-121-6/+6
| | | | | | | | | | | | | | | | | | Summary: Change string parameter 'File' to be passed by const-reference to reduce copies. Patch by Mitch Phillips Reviewers: vlad.tsyrklevich Reviewed By: vlad.tsyrklevich Subscribers: Eugene.Zelenko, llvm-commits Differential Revision: https://reviews.llvm.org/D37652 llvm-svn: 312994
* [libfuzzer] Compare TotalNumberOfRuns with MaxNumberOfRuns when testing a ↵Max Moroz2017-09-122-0/+12
| | | | | | | | | | | | | | | | | | | memory leak. Summary: Fuzzer::TryDetectingAMemoryLeak may call ExecuteCallback which would increment TotalNumberOfRuns, but it doesn't respect Options.MaxNumberOfRuns value specified by a user. Context: https://github.com/google/oss-fuzz/issues/822#issuecomment-328153970 Reviewers: kcc Reviewed By: kcc Differential Revision: https://reviews.llvm.org/D37632 llvm-svn: 312993
* [XRay][compiler-rt] Use a single global volatile recursion guard for FDR ↵Dean Michael Berris2017-09-122-4/+6
| | | | | | | | | | | | | | | | | | | | handlers Summary: Before this change, the recursion guard for the flight data recorder (FDR) mode handlers were independent. This change makes it so that when a handler is already in the process of running and somehow the same or another handler starts running -- say in a signal handler, while the XRay handler is executing -- then we can use the same thread-local recursion guard to stop the second handler from running. Reviewers: kpw, eizan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D37612 llvm-svn: 312992
* [X86] Rename TruncAssertZext.ll test to TruncAssertSext.ll. Since its ↵Craig Topper2017-09-121-0/+0
| | | | | | testing AssertSext. llvm-svn: 312991
* [X86] Fix typo in comment. NFCCraig Topper2017-09-121-1/+1
| | | | llvm-svn: 312990
* [Driver] Fuchsia targets default to -fasynchronous-unwind-tablesPetr Hosek2017-09-122-2/+11
| | | | | | | | | | | | This regressed for x86-64 in r307856 because it's no longer inherited from Generic_GCC. We'd never noticed that it was missing other targets (i.e. aarch64), but Fuchsia is uniform across all machines. Patch by Roland McGrath Differential Revision: https://reviews.llvm.org/D37723 llvm-svn: 312989
* Update testcases that are XFAILed on Darwin for llvm-dwarfdump changes.Adrian Prantl2017-09-121-1/+1
| | | | llvm-svn: 312988
* [compiler-rt] Move IsStackOverflow from asan into sanitizer_commonVitaly Buka2017-09-123-45/+52
| | | | | | | | | | | | Summary: Part of https://github.com/google/sanitizers/issues/637 Reviewers: eugenis, alekseyshl Subscribers: kubamracek, dberris, llvm-commits Differential Revision: https://reviews.llvm.org/D37536 llvm-svn: 312987
* Fix broken links to the Itanium CXX ABIVlad Tsyrklevich2017-09-124-6/+6
| | | | llvm-svn: 312986
* Fix broken links to the Itanium CXX ABIVlad Tsyrklevich2017-09-126-14/+14
| | | | llvm-svn: 312985
* Revert "[compiler-rt] Move IsStackOverflow from asan into sanitizer_common"Vitaly Buka2017-09-123-49/+44
| | | | | | | | Windows is broken. This reverts commit r312951 llvm-svn: 312984
* Align addresses, not offsets.Rafael Espindola2017-09-124-9/+20
| | | | | | | This fixes two more cases where we were aligning the offset in a section, instead of the final address. llvm-svn: 312983
* [ubsan-minimal] Disable x86_64h tests when not on x86_64hVedant Kumar2017-09-121-0/+4
| | | | llvm-svn: 312982
* lldMinGW: Add LLVMSupport in libdeps.NAKAMURA Takumi2017-09-121-0/+4
| | | | llvm-svn: 312981
* Revert r312898 "[ARM] Use ADDCARRY / SUBCARRY"Hans Wennborg2017-09-114-294/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | It caused PR34564. > This is a preparatory step for D34515 and also is being recommitted as its > first version caused PR34045. > > This change: > - makes nodes ISD::ADDCARRY and ISD::SUBCARRY legal for i32 > - lowering is done by first converting the boolean value into the carry flag > using (_, C) ← (ARMISD::ADDC R, -1) and converted back to an integer value > using (R, _) ← (ARMISD::ADDE 0, 0, C). An ARMISD::ADDE between the two > operations does the actual addition. > - for subtraction, given that ISD::SUBCARRY second result is actually a > borrow, we need to invert the value of the second operand and result before > and after using ARMISD::SUBE. We need to invert the carry result of > ARMISD::SUBE to preserve the semantics. > - given that the generic combiner may lower ISD::ADDCARRY and > ISD::SUBCARRYinto ISD::UADDO and ISD::USUBO we need to update their lowering > as well otherwise i64 operations now would require branches. This implies > updating the corresponding test for unsigned. > - add new combiner to remove the redundant conversions from/to carry flags > to/from boolean values (ARMISD::ADDC (ARMISD::ADDE 0, 0, C), -1) → C > - fixes PR34045 > > Differential Revision: https://reviews.llvm.org/D35192 llvm-svn: 312980
* Correct ALIGN expression when inside a section.Rafael Espindola2017-09-112-1/+15
| | | | | | | | | | | | | | | When given foobar = ALIGN(., 0x100); my expectation from what the manual says is that the final address of foobar will be aligned. It seems that bfd aligns the offset in the section, which causes some odd results if the section is not 0x100 aligned. Gold aligns the address. This changes lld to align the final address. llvm-svn: 312979
* bpf: add " ll" in the LD_IMM64 asmstringYonghong Song2017-09-119-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | This partially revert previous fix in commit f5858045aa0b ("bpf: proper print imm64 expression in inst printer"). In that commit, the original suffix "ll" is removed from LD_IMM64 asmstring. In the customer print method, the "ll" suffix is printed if the rhs is an immediate. For example, "r2 = 5ll" => "r2 = 5ll", and "r3 = varll" => "r3 = var". This has an issue though for assembler. Since assembler relies on asmstring to do pattern matching, it will not be able to distiguish between "mov r2, 5" and "ld_imm64 r2, 5" since both asmstring is "r2 = 5". In such cases, the assembler uses 64bit load for all "r = <val>" asm insts. This patch adds back " ll" suffix for ld_imm64 with one additional space for "#reg = #global_var" case. Signed-off-by: Yonghong Song <yhs@fb.com> Acked-by: Alexei Starovoitov <ast@kernel.org> llvm-svn: 312978
* Update testcases that are XFAILed on Darwin for llvm-dwarfdump changes.Adrian Prantl2017-09-112-2/+2
| | | | llvm-svn: 312977
* Update testcases for llvm-dwarfdump command line interface changeAdrian Prantl2017-09-112-3/+3
| | | | llvm-svn: 312976
* [llvm-cov] Try to fix a test on WindowsVedant Kumar2017-09-111-2/+2
| | | | | | | | | Failing bot: http://lab.llvm.org:8011/builders/llvm-clang-x86_64-expensive-checks-win/builds/4791 This looks like another stderr redirection issue. llvm-svn: 312975
* Update testcases for llvm-dwarfdump command line interface changeAdrian Prantl2017-09-116-6/+6
| | | | llvm-svn: 312974
* Runtime detection of android_set_abort_message.Evgeniy Stepanov2017-09-112-7/+7
| | | | | | | | | | | | | | | | | Summary: Use runtime detection (with a weak-undef symbol) of android_set_abort_message availability. Android NDK provides a single version of the ASan runtime library to be used for any target API level, which makes compile-time feature detection impossible (the library itself is built at API level 9). Reviewers: vitalybuka Subscribers: srhines, llvm-commits, kubamracek Differential Revision: https://reviews.llvm.org/D37716 llvm-svn: 312973
* llvm-dwarfdump: Make -brief the default and add a -verbose option instead.Adrian Prantl2017-09-11210-298/+301
| | | | | | Differential Revision: https://reviews.llvm.org/D37717 llvm-svn: 312972
* [CodeGen] Fix some Clang-tidy modernize-use-using and Include What You Use ↵Eugene Zelenko2017-09-1110-166/+243
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 312971
* llvm-dwarfdump: Replace -debug-dump=sect option with individual options.Adrian Prantl2017-09-11229-367/+383
| | | | | | | | | | | | | | | | | | | | | | As discussed on llvm-dev in http://lists.llvm.org/pipermail/llvm-dev/2017-September/117301.html this changes the command line interface of llvm-dwarfdump to match the one used by the dwarfdump utility shipping on macOS. In addition to being shorter to type this format also has the advantage of allowing more than one section to be specified at the same time. In a nutshell, with this change $ llvm-dwarfdump --debug-dump=info $ llvm-dwarfdump --debug-dump=apple-objc becomes $ dwarfdump --debug-info --apple-objc Differential Revision: https://reviews.llvm.org/D37714 llvm-svn: 312970
* [llvm-cov] Allow hiding instantiation/region coverage from summary tablesEli Friedman2017-09-117-51/+78
| | | | | | | | | | | | | Region coverage is difficult to explain without going deep into how coverage is implemented. Instantiation coverage is easier to explain, but probably not useful in most cases (templates don't exist in C, and most C++ code contains relatively few templates). This patch adds the options "-show-region-summary" and "-show-instantiation-summary" to allow hiding those columns. "-show-instantiation-summary" is turned off by default. llvm-svn: 312969
* LowerTypeTests: Add import/export support for targets without absolute ↵Peter Collingbourne2017-09-1116-93/+303
| | | | | | | | | | symbol constants. The rationale is the same as for r312967. Differential Revision: https://reviews.llvm.org/D37408 llvm-svn: 312968
* WholeProgramDevirt: Add import/export support for targets without absolute ↵Peter Collingbourne2017-09-1110-32/+114
| | | | | | | | | | | | | | | | | | | symbol constants. Not all targets support the use of absolute symbols to export constants. In particular, ARM has a wide variety of constant encodings that cannot currently be relocated by linkers. So instead of exporting the constants using symbols, export them directly in the summary. The values of the constants are left as zeroes on targets that support symbolic exports. This may result in more cache misses when targeting those architectures as a result of arbitrary changes in constant values, but this seems somewhat unavoidable for now. Differential Revision: https://reviews.llvm.org/D37407 llvm-svn: 312967
* Ignore /natvis option for now.Rui Ueyama2017-09-112-0/+2
| | | | | | | | | | /natvis is a new command line option introduced by MSVC 2017. We eventually have to support it, but for now, let's ignore it so that we can at least link stuff instead of printing out an error. Patch by Michael Rickert. llvm-svn: 312966
* [codeview] omit debug locations for nested exprs unless column info enabledBob Haarman2017-09-114-0/+213
| | | | | | | | | | | | | | | | | | | | | | Summary: Microsoft Visual Studio expects debug locations to correspond to statements. We used to emit locations for expressions nested inside statements. This would confuse the debugger, causing it to stop multiple times on the same line and breaking the "step into specific" feature. This change inhibits the emission of debug locations for nested expressions when emitting CodeView debug information, unless column information is enabled. Fixes PR34312. Reviewers: rnk, zturner Reviewed By: rnk Subscribers: majnemer, echristo, aprantl, cfe-commits Differential Revision: https://reviews.llvm.org/D37529 llvm-svn: 312965
* Reorder functions so that related functions come closer.Rui Ueyama2017-09-111-19/+19
| | | | llvm-svn: 312964
* Rename COFFLdOptTable MinGWOptTable for consistency.Rui Ueyama2017-09-111-4/+4
| | | | llvm-svn: 312963
* Make the scope of an anonymous namespace as narrow as possible.Rui Ueyama2017-09-111-4/+2
| | | | llvm-svn: 312962
* Remove unused includes and do not enclose the entire file with a namespace.Rui Ueyama2017-09-111-8/+1
| | | | llvm-svn: 312961
* Fix MinGW/CMakeLists.txt.Rui Ueyama2017-09-111-4/+3
| | | | | | | | We do not use "Shim" as a name of MinGW driver, so rename it MinGW. I don't think the former dependency list was correct. MinGW driver depends on COFF. llvm-svn: 312960
* [ubsan-minimal] Enable on DarwinVedant Kumar2017-09-113-3/+6
| | | | | | | | Testing: check-ubsan-minimal Differential Revision: https://reviews.llvm.org/D37646 llvm-svn: 312959
* [Driver] Support ubsan-minimal on DarwinVedant Kumar2017-09-112-1/+10
| | | | | | | | Make it possible to use the minimal ubsan runtime on Darwin. Differential Revision: https://reviews.llvm.org/D37649 llvm-svn: 312958
* [ubsan-minimal] Document the new runtimeVedant Kumar2017-09-112-1/+17
| | | | | | Differential Revision: https://reviews.llvm.org/D37647 llvm-svn: 312957
* LLD: Add -mllvm flag to the MinGW driver.Martell Malone2017-09-113-0/+20
| | | | | | | | | | | This adds support for passing LTO flags to the MINGW driver in GNU LD style i.e. -mllvm flag -> /mllvm:flag Reviewers: ruiu, mstorsjo Differential Revision: https://reviews.llvm.org/D37712 llvm-svn: 312956
OpenPOWER on IntegriCloud