summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [OpenCL] Allow OpenCL C style vector initialization in C++Anastasia Stulova2019-08-025-69/+78
| | | | | | | | | | | Allow creating vector literals from other vectors. float4 a = (float4)(1.0f, 2.0f, 3.0f, 4.0f); float4 v = (float4)(a.s23, a.s01); Differential revision: https://reviews.llvm.org/D65286 llvm-svn: 367675
* [COFF] Clarify a comment. NFC.Martin Storsjo2019-08-021-1/+1
| | | | | | | It's the __delayLoadHelper2 function that overwrites the jump table slot, not this thunk. llvm-svn: 367674
* [COFF] Avoid loading objects for mingw autoimport, when a defined alias existsMartin Storsjo2019-08-023-0/+25
| | | | | | | | | This avoids a spurious and confusing log message in cases where both e.g. "alias" and "__imp_alias" exist. Differential Revision: https://reviews.llvm.org/D65598 llvm-svn: 367673
* [clangd] Remove bad assert: nothing relies on it, and the reasons it was ↵Sam McCall2019-08-021-3/+2
| | | | | | true no longer hold. llvm-svn: 367672
* [MCA] Add support for printing immedate values as hex. Also enable lexing of ↵Andrea Di Biagio2019-08-025-0/+83
| | | | | | | | | | | | | | | | | | masm binary and hex literals. This patch adds a new llvm-mca flag named -print-imm-hex. By default, the instruction printer prints immediate operands as decimals. Flag -print-imm-hex enables the instruction printer to print those operands in hex. This patch also adds support for MASM binary and hex literal numbers (example 0FFh, 101b). Added tests to verify the behavior of the new flag. Tests also verify that masm numeric literal operands are now recognized. Differential Revision: https://reviews.llvm.org/D65588 llvm-svn: 367671
* [IPRA][ARM] Disable no-CSR optimisation for ARMOliver Stannard2019-08-025-2/+37
| | | | | | | | | | | This optimisation isn't generally profitable for ARM, because we can save/restore many registers in the prologue and epilogue using the PUSH and POP instructions, but mostly use individual LDR/STR instructions for other spills. Differential revision: https://reviews.llvm.org/D64910 llvm-svn: 367670
* Fix and test inter-procedural register allocation for ARMOliver Stannard2019-08-026-2/+227
| | | | | | | | | | | | | | - Avoid a crash when IPRA calls ARMFrameLowering::determineCalleeSaves with a null RegScavenger. Simply not updating the register scavenger is fine because IPRA only cares about the SavedRegs vector, the acutal code of the function has already been generated at this point. - Add a new hook to TargetRegisterInfo to get the set of registers which can be clobbered inside a call, even if the compiler can see both sides, by linker-generated code. Differential revision: https://reviews.llvm.org/D64908 llvm-svn: 367669
* [Loop Peeling] Introduce an option for profile based peeling disabling.Serguei Katkov2019-08-026-26/+45
| | | | | | | | | | | | | | | | | This patch adds an ability to disable profile based peeling causing the peeling of all iterations and as a result prohibits further unroll/peeling attempts on that loop. The motivation to get an ability to separate peeling usage in pipeline where in the first part we peel only separate iterations if needed and later in pipeline we apply the full peeling which will prohibit further peeling. Reviewers: reames, fhahn Reviewed By: reames Subscribers: hiraditya, zzheng, dmgreen, llvm-commits Differential Revision: https://reviews.llvm.org/D64983 llvm-svn: 367668
* [clangd] Add new helpers to make tweak tests scale better. Convert most ↵Sam McCall2019-08-024-365/+366
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tests. NFC Summary: TweakTests.cpp has some pretty good helpers added for the first few tweaks, but they have some limitations: - many assertion failures point at the wrong line - need lots of input/output tests, setup code is duplicated across both - local helpers make it hard to split the file as it grows The new helpers in TweakTests.h are based on old ones (same operations) but try to address these issues and generally make tests more terse while improving error messages. This patch converts everything except ExtractVariable (which is complex and has changes in flight, so will be converted later). It's LOC-neutral, despite not being able to get rid of the old helpers until ExtractVariable is done. Reviewers: ilya-biryukov Subscribers: mgorny, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65525 llvm-svn: 367667
* [LV] Fix test failure in a Release build.Jay Foad2019-08-021-0/+1
| | | | llvm-svn: 367666
* [NFC][ARM[ParallelDSP] Rename/remove/change typesSam Parker2019-08-021-13/+8
| | | | | | | Remove forward declaration, fold a couple of typedefs and change one to be more useful. llvm-svn: 367665
* SymbolVendor: Introduce Module::GetSymbolFilePavel Labath2019-08-029-223/+188
| | | | | | | | | | | | | | | | | | | | | Summary: This is the next step in avoiding funneling all SymbolFile calls through the SymbolVendor. Right now, it is just a convenience function, but it allows us to update all calls to SymbolVendor functions to access the SymbolFile directly. Once all call sites have been updated, we can remove the GetSymbolVendor member function. This patch just updates the calls to GetSymbolVendor, which were calling it just so they could fetch the underlying symbol file. Other calls will be done in follow-ups. Reviewers: JDevlieghere, clayborg, jingham Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D65435 llvm-svn: 367664
* [lldb][NFC] Remove unused imports in python testsRaphael Isemann2019-08-02513-1022/+0
| | | | llvm-svn: 367663
* [AliasAnalysis] Initialize a member variable that may be used by unit test.Peter Smith2019-08-022-6/+3
| | | | | | | | | | | | | | | | | | The unit tests in BasicAliasAnalysisTest use the alias analysis API directly and do not call setAAResults to initalize AAR. This gives a valgrind error "Conditional Jump depends on unitialized variable". On most buildbots the variable is nullptr, but in some cases it can be non nullptr leading to seemingly random failures. These tests were disabled in r366986. With the initialization they can be enabled again. Fixes PR42719 Differential Revision: https://reviews.llvm.org/D65568 llvm-svn: 367662
* Don't try emitting dllexported explicitly defaulted non-trivial ctors twice ↵Hans Wennborg2019-08-022-1/+14
| | | | | | | | | | during explicit template instantiation definition (PR42857) Trying to emit the definition twice triggers an assert. Differential revision: https://reviews.llvm.org/D65579 llvm-svn: 367661
* [NFC][ARM][ParallelDSP] Remove ValueListSam Parker2019-08-021-10/+8
| | | | | | We only care about the first element in the list. llvm-svn: 367660
* Moves the newly added test interleaved-accesses-waw-dependency.ll to X86 ↵Hideki Saito2019-08-021-0/+0
| | | | | | | | subdirectory. ps4-buildslave1 reported a failure. The test has x86 triple. llvm-svn: 367659
* Revert r367649: Improve raw_ostream so that you can "write" colors using ↵Rui Ueyama2019-08-0227-183/+175
| | | | | | | | operator<< This reverts commit r367649 in an attempt to unbreak Windows bots. llvm-svn: 367658
* [PGO] Fix bolt failures from r367628Rong Xu2019-08-021-2/+2
| | | | | | | Relaxed the check in a test because the windows bolt generates different profile variables. llvm-svn: 367657
* compiler-rt: Rename .cc file in test/tsan to .cppFangrui Song2019-08-02236-48/+48
| | | | | | Like r367463, but for test/tsan. llvm-svn: 367656
* [LLVM][Alignment] Update documentationGuillaume Chatelet2019-08-021-62/+43
| | | | | | | | | | | | Reviewers: aprantl Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65558 llvm-svn: 367655
* [LV] Avoid building interleaved group in presence of WAW dependencyHideki Saito2019-08-023-3/+124
| | | | | | | | | | | | Reviewers: hsaito, Ayal, fhahn, anna, mkazantsev Reviewed By: hsaito Patch by evrevnov, thanks! Differential Revision: https://reviews.llvm.org/D63981 llvm-svn: 367654
* compiler-rt: Rename .cc file in test/msan to .cppFangrui Song2019-08-02136-78/+78
| | | | | | Like r367463, but for test/msan. llvm-svn: 367653
* compiler-rt: Rename .cc file in test/xray to .cppFangrui Song2019-08-0229-1/+1
| | | | | | | | | Like r367463, but for test/xray. Update test/xray/lit.cfg.py config.suffixes to remove .cc (we actually don't have .c tests now) llvm-svn: 367652
* Add an assert() to catch possible regexp errors.Rui Ueyama2019-08-021-5/+6
| | | | llvm-svn: 367651
* Add a comment for --vs-diagnostics.Rui Ueyama2019-08-021-0/+21
| | | | llvm-svn: 367650
* Improve raw_ostream so that you can "write" colors using operator<<Rui Ueyama2019-08-0227-175/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. raw_ostream supports ANSI colors so that you can write messages to the termina with colors. Previously, in order to change and reset color, you had to call `changeColor` and `resetColor` functions, respectively. So, if you print out "error: " in red, for example, you had to do something like this: OS.changeColor(raw_ostream::RED); OS << "error: "; OS.resetColor(); With this patch, you can write the same code as follows: OS << raw_ostream::RED << "error: " << raw_ostream::RESET; 2. Add a boolean flag to raw_ostream so that you can disable colored output. If you disable colors, changeColor, operator<<(Color), resetColor and other color-related functions have no effect. Most LLVM tools automatically prints out messages using colors, and you can disable it by passing a flag such as `--disable-colors`. This new flag makes it easy to write code that works that way. Differential Revision: https://reviews.llvm.org/D65564 llvm-svn: 367649
* [clang-format] Fix a bug that doesn't break braces before unions for AllmanOwen Pan2019-08-022-0/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D65631 llvm-svn: 367648
* [Loop Peeling] Do not close further unroll/peel if profile based peeling was ↵Serguei Katkov2019-08-026-8/+124
| | | | | | | | | | | | | | | | | | | | | | | | | | | not used. Current peeling cost model can decide to peel off not all iterations but only some of them to eliminate conditions on phi. At the same time if any peeling happens the door for further unroll/peel optimizations on that loop closes because the part of the code thinks that if peeling happened it is profile based peeling and all iterations are peeled off. To resolve this inconsistency the patch provides the flag which states whether the full peeling basing on profile is enabled or not and peeling cost model is able to modify this field like it does not PeelCount. In a separate patch I will introduce an option to allow/disallow peeling basing on profile. To avoid infinite loop peeling the patch tracks the total number of peeled iteration through llvm.loop.peeled.count loop metadata. Reviewers: reames, fhahn Reviewed By: reames Subscribers: hiraditya, zzheng, dmgreen, llvm-commits Differential Revision: https://reviews.llvm.org/D64972 llvm-svn: 367647
* Handle casts changing pointer size in the vectorizerStanislav Mekhanoshin2019-08-022-5/+55
| | | | | | | | | Added code to truncate or shrink offsets so that we can continue base pointer search if size has changed along the way. Differential Revision: https://reviews.llvm.org/D65612 llvm-svn: 367646
* [PowerPC][Peephole] Check if `extsw`'s second operand is a virtual registerKai Luo2019-08-022-2/+9
| | | | | | | | | | | Summary: When combining `extsw` and `sldi` in `PPCMIPeephole`, we have to check if `extsw`'s second operand is a virtual register, otherwise we might get miscompile. Differential Revision: https://reviews.llvm.org/D65315 llvm-svn: 367645
* [NFC][CodeGen] Modify the type element of TailCalls to simplify the ↵Kang Zhang2019-08-021-12/+9
| | | | | | | | | | | | | dupRetToEnableTailCallOpts() Summary: The old code can be simplified to define the element type of TailCalls as `BasicBlock` not `CallInst`. Also I use the for-range loop instead the for loop. Reviewed By: jsji Differential Revision: https://reviews.llvm.org/D64905 llvm-svn: 367644
* Fix an unused variable warning.Rui Ueyama2019-08-021-1/+1
| | | | llvm-svn: 367643
* Fix flaky test caused by PR42868Vitaly Buka2019-08-021-22/+21
| | | | llvm-svn: 367642
* Change /build to /build* in top-level .gitignore.Douglas Yung2019-08-021-1/+1
| | | | | | | | Reviewers: beanz Differential Revision: https://reviews.llvm.org/D65559 llvm-svn: 367641
* Temporarily revert "Changes to improve CodeView debug info type record ↵Eric Christopher2019-08-029-635/+192
| | | | | | | | | | inline comments" due to a sanitizer failure. This reverts commit 367623. llvm-svn: 367640
* Update Compiler.h check for MSVCJF Bastien2019-08-021-4/+12
| | | | | | We require at least MSVC 2017, but I forgot to update Compiler.h when I updated the MSVC requirement. llvm-svn: 367639
* Format OptionEnumValueElement (NFC)Jonas Devlieghere2019-08-0211-151/+368
| | | | | | | | | | Reformat OptionEnumValueElement to make it easier to distinguish between its fields. This also removes the need to disable clang-format for these arrays. Differential revision: https://reviews.llvm.org/D65489 llvm-svn: 367638
* Fix up an unused variable warning caused by TRI->isVirtualRegister() -> ↵Daniel Sanders2019-08-021-0/+2
| | | | | | Register::isVirtualRegister() llvm-svn: 367637
* Prevent vregs leaking into the MC layer via TargetRegisterClass::contains()Daniel Sanders2019-08-011-0/+9
| | | | | | | | | | | | | | | | | | | Summary: The MC layer doesn't expect to deal with vregs but TargetRegisterClass::contains() forwards into MCRegisterClass::contains() and this can cause vregs to turn up in the MC layer APIs. Add guards against this to prevent this becoming a problem as we replace unsigned with a new MCRegister object for improved type safety. Reviewers: arsenm Subscribers: wdng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D65554 llvm-svn: 367636
* [dsymutil] Fix heap-use-after-free related to the LinkOptions.Jonas Devlieghere2019-08-011-5/+6
| | | | | | | | | In r367348, I changed dsymutil to pass the LinkOptions by value isntead of by const reference. However, the options were still captured by reference in the LinkLambda. This patch fixes that by passing them in by value. llvm-svn: 367635
* [Tests] Autogen a bunch of Reassociate tests for ease of updatePhilip Reames2019-08-0118-242/+374
| | | | llvm-svn: 367634
* Finish moving TargetRegisterInfo::isVirtualRegister() and friends to ↵Daniel Sanders2019-08-01195-1158/+1039
| | | | | | llvm::Register as started by r367614. NFC llvm-svn: 367633
* [DirectoryWatcher] Relax assumption to prevent test flakinessJan Korous2019-08-012-1/+19
| | | | llvm-svn: 367632
* Refactor deque to centralize handling of spare blocks.Eric Fiselier2019-08-012-48/+334
| | | | | | | | I have upcoming changes that modify how deque handles spare blocks. This cleanup is intended to make those changes easier to review and understand. This patch should have NFC. llvm-svn: 367631
* [PGO] Add PGO support at -O0 in the experimental new pass managerRong Xu2019-08-016-29/+139
| | | | | | | | | | | | | | Add PGO support at -O0 in the experimental new pass manager to sync the behavior of the legacy pass manager. Also change the test of gcc-flag-compatibility.c for more complete test: (1) change the match string to "profc" and "profd" to ensure the instrumentation is happening. (2) add IR format proftext so that PGO use compilation is tested. Differential Revision: https://reviews.llvm.org/D64029 llvm-svn: 367628
* Revert r366980: "[lit] Protect full test suite from FILECHECK_OPTS"Joel E. Denny2019-08-012-10/+3
| | | | | | Windows bots are broken. See recent D65335 and D65156 comments. llvm-svn: 367627
* Revert r367123: "[llvm] [lit/tests] Replace 'env -u' with more portable ↵Joel E. Denny2019-08-011-1/+1
| | | | | | | | | construct" Must be reverted in order to revert r366980, which breaks windows bots. See recent D65335 and D65156 comments. llvm-svn: 367626
* [NFC] Remove extra __has_featureJF Bastien2019-08-011-9/+0
| | | | | | It's already in Compiler.h llvm-svn: 367625
* Relax load store vectorizer pointer strip checksStanislav Mekhanoshin2019-08-012-9/+47
| | | | | | | | | | | The previous change to fix crash in the vectorizer introduced performance regressions. The condition to preserve pointer address space during the search is too tight, we only need to match the size. Differential Revision: https://reviews.llvm.org/D65600 llvm-svn: 367624
OpenPOWER on IntegriCloud