summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [X86] Remove unused include. NFCI.Simon Pilgrim2019-08-161-1/+0
| | | | | | We don't use anything from TargetOptions.h directly and its included via TargetLowering.h anyhow. llvm-svn: 369110
* [libcxxabi] __cxa_guard_require: test guard byte with != 0 instead of == 1Fangrui Song2019-08-161-1/+1
| | | | llvm-svn: 369109
* [ARM] Correct register for narrowing and widening MVE loads and stores.David Green2019-08-164-13/+323
| | | | | | | | | | | | | | | | The widening and narrowing MVE instructions like VLDRH.32 are only permitted to use low tGPR registers. This means that if they are used for a stack slot, where the register used is only decided during frame setup, we need to be able to correctly pick a thumb1 register over a normal GPR. This attempts to add the required logic into eliminateFrameIndex and rewriteT2FrameIndex, only picking the FrameReg if it is a valid register for the operands register class, and picking a valid scratch register for the register class. Differential Revision: https://reviews.llvm.org/D66285 llvm-svn: 369108
* [x86] fix fdiv test; NFCSanjay Patel2019-08-161-39/+47
| | | | | | | The test was just added with rL369106, but forgot to update the instruction along with the test name. llvm-svn: 369107
* [x86] add tests for fdiv with variable operands; NFCSanjay Patel2019-08-161-0/+184
| | | | | | | D66050 proposes to change the estimate sequence, but we don't seem to have test coverage for the common case. llvm-svn: 369106
* [clangd] suppress -Wparentheses warning: suggest parentheses around ‘&&’ ↵Haojian Wu2019-08-161-1/+1
| | | | | | within ‘||’ llvm-svn: 369105
* Revert [CodeGen] Do the Simple Early Return in block-placement pass to ↵Florian Hahn2019-08-162-41/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | optimize the blocks This reverts r368997 (git commit 2a903c0b679bae1919f9fc01f78e4bc6cff2add0) It looks like this commit adds invalid predecessors to MBBs. The example below fails the verifier after MachineBlockPlacement (run llc -verify-machineinstrs): @global.4 = external constant i8* declare i32 @zot(...) define i16* @snork.67() personality i8* bitcast (i32 (...)* @zot to i8*) { bb: invoke void undef() to label %bb5 unwind label %bb4 bb4: ; preds = %bb %tmp = landingpad { i8*, i32 } catch i8* null unreachable bb5: ; preds = %bb %tmp6 = load i32, i32* null, align 4 %tmp7 = icmp eq i32 %tmp6, 0 br i1 %tmp7, label %bb14, label %bb8 bb8: ; preds = %bb11, %bb5 invoke void undef() to label %bb9 unwind label %bb11 bb9: ; preds = %bb8 %tmp10 = invoke i16* undef() to label %bb14 unwind label %bb11 bb11: ; preds = %bb9, %bb8 %tmp12 = landingpad { i8*, i32 } cleanup catch i8* bitcast (i8** @global.4 to i8*) %tmp13 = icmp ult i64 undef, undef br i1 %tmp13, label %bb8, label %bb14 bb14: ; preds = %bb11, %bb9, %bb5 %tmp15 = phi i16* [ null, %bb5 ], [ null, %bb11 ], [ %tmp10, %bb9 ] ret i16* %tmp15 } llvm-svn: 369104
* [DAGCombiner] Add simple folds for SMULFIX/UMULFIX/SMULFIXSATBjorn Pettersson2019-08-163-156/+81
| | | | | | | | | | | | | | | | | | | | | | Summary: Add the following DAGCombiner folds for mulfix being one of SMULFIX/UMULFIX/SMULFIXSAT: (mulfix x, undef, scale) -> 0 (mulfix x, 0, scale) -> 0 Also added canonicalization of constants to RHS. Reviewers: RKSimon, craig.topper, spatel Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66052 llvm-svn: 369103
* [X86] Add test case for future MULFIX DAG combine folds. NFCBjorn Pettersson2019-08-161-0/+206
| | | | | | | | | | | | | | | | | | | | Add some test cases displaying the lack of DAG combine folds for SMULFIX/UMULFIX/SMULFIXSAT when either multiplicand is undef or zero. It seems like widening vector legalization for X86 can introduce fixed point multiplication of undef values. So that is one way that such operations could appear during ISel. Multiplication with zero is probably more unlikely, and could potentially be handled by InstCombine. But I do not think it would hurt to do such folds in DAGCombiner. This patch only adds the test case. The folds will be added in a follow up patch. llvm-svn: 369102
* [ARM] Don't pretend we know how to generate MVE VLDnDavid Green2019-08-163-1/+423
| | | | | | | | | | We don't yet know how to generate these instructions for MVE. And in the case of VLD3, we don't even have the instruction. For the moment don't tell the vectoriser that we have VLD4, just to end up serialising the results. Differential Revision: https://reviews.llvm.org/D66009 llvm-svn: 369101
* [clangd] Simplify code of ClangdLSPServer::onCommandIlya Biryukov2019-08-161-41/+33
| | | | | | | | | | | | | | | | | | | | Summary: By inlining a complicated lambda into its single call-site. Also ensure we call Reply() exactly once even if tweaks return both ShowMessage and ApplyEdit effects. Reviewers: hokein Reviewed By: hokein Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66343 llvm-svn: 369100
* Fix typos in LibASTImporter.rstGabor Marton2019-08-161-2/+2
| | | | llvm-svn: 369099
* [ASTImporter] Import ctor initializers after setting flags.Balazs Keri2019-08-164-17/+33
| | | | | | | | | | | | | | | | | | | | Summary: Code to import "ctor initializers" at import of functions is moved to be after the flags in the newly created function are imported. This fixes an error when the already created but incomplete (flags are not set) function declaration is accessed. Reviewers: martong, shafik, a_sidorin, a.sidorin Reviewed By: shafik Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65935 llvm-svn: 369098
* [RISCV] Allow parsing of bare symbols with offsetsLewis Revill2019-08-162-62/+85
| | | | | | | | | This patch allows symbols followed by an expression for an offset to be parsed as bare symbols. Differential Revision: https://reviews.llvm.org/D57332 llvm-svn: 369097
* Revert "[CallGraph] Refine call graph for indirect calls with !callees metadata"Benjamin Kramer2019-08-168-159/+7
| | | | | | | This reverts commit r369025. Crashes clang, test case is on the mailing list. llvm-svn: 369096
* [RISCV] Lower inline asm constraint A for RISC-VLewis Revill2019-08-165-0/+49
| | | | | | | | | | | | This allows arguments with the constraint A to be lowered to input nodes for RISC-V, which implies a memory address stored in a register. This patch adds the minimal amount of code required to get operands with the right constraints to compile. https://reviews.llvm.org/D54296 llvm-svn: 369095
* [SLPVectorizer] Silence null dereference warning. NFCI.Simon Pilgrim2019-08-161-0/+1
| | | | | | cppcheck + MSVC analyzer both over zealously warn that we might dereference a null Bundle pointer - add an assertion to check for null to silence the warning, plus its a good idea to check that we succeeded in finding a schedule bundle anyway.... llvm-svn: 369094
* [RISCV] Add inline asm constraint A for RISC-VLewis Revill2019-08-162-0/+10
| | | | | | | | | | | | This allows the constraint A to be used in inline asm for RISC-V, which allows an address held in a register to be used. This patch adds the minimal amount of code required to get operands with the right constraints to compile. Differential Revision: https://reviews.llvm.org/D54295 llvm-svn: 369093
* [DebugInfo] Handle complex expressions with spills in LiveDebugValuesJeremy Morse2019-08-162-35/+172
| | | | | | | | | | | | | | | | | | | | | In r369026 we disabled spill-recognition in LiveDebugValues for anything that has a complex expression. This is because it's hard to recover the complex expression once the spill location is baked into it. This patch re-enables spill-recognition and slightly adjusts the DBG_VALUE insts that LiveDebugValues tracks: instead of tracking the last DBG_VALUE for a variable, it tracks the last _unspilt_ DBG_VALUE. The spill-restore code is then able to access and copy the original complex expression; but the rest of LiveDebugValues has to be aware of the slight semantic shift, and produce a new spilt location if a spilt location is propagated between blocks. The test added produces an incorrect variable location (see FIXME), which will be the subject of future work. Differential Revision: https://reviews.llvm.org/D65368 llvm-svn: 369092
* AssumptionCache: remove old affected values after RAUW.Tim Northover2019-08-162-4/+5
| | | | | | | | If they're left in the cache then they can't be removed efficiently when the cache is notified to unlink a @llvm.assume call, and that can lead to values from different functions entirely remaining there. llvm-svn: 369091
* [clangd] Added highlighting for non type templates.Johan Vikstrom2019-08-162-0/+57
| | | | | | | | | | | | | | | Summary: Non type templates were not being highlighted. This highlights them as TemplateParameters. Reviewers: hokein, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66221 llvm-svn: 369090
* [clangd] Remove Bind, use C++14 lambda captures instead. NFCIlya Biryukov2019-08-163-65/+15
| | | | llvm-svn: 369089
* [ValueTracking] Fix recurrence detection to check both PHI operands.Florian Hahn2019-08-162-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: Currently we fail to compute known bits for recurrences where the first incoming value is the start value of the recurrence. Instead of exiting the loop when the first incoming value is not the step of the recurrence, continue to check the second incoming value. The original code uses a loop to handle both cases, but incorrectly exits instead of continuing. Reviewers: lebedev.ri, spatel, nikic Reviewed By: lebedev.ri Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66216 llvm-svn: 369088
* [X86] Manually reimplement getTargetInsertSubreg in ↵Craig Topper2019-08-162-2/+23
| | | | | | | | | | X86DAGToDAGISel::matchBitExtract so we can call insertDAGNode on the target constant. This is needed to maintain the topological sort order. Fixes PR42992. llvm-svn: 369084
* [lldb-server] Disable a test on Windows until it can be fixedAaron Smith2019-08-161-0/+4
| | | | llvm-svn: 369083
* Remove the temporary code. NFC.Igor Kudrin2019-08-162-43/+0
| | | | | | That should have been done in rL368156 but somehow was missed. llvm-svn: 369082
* [clang-tidy] Migrate objc-super-self to use isDerivedFrom 🚛Stephane Moore2019-08-161-30/+17
| | | | | | | | | | | | | | | | | | | | | Summary: This migrates objc-super-self to `isDerivedFrom` as it now supports matching Objective-C interface declarations. Test Notes: Ran clang tools tests. Reviewers: aaron.ballman, gribozavr Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66270 llvm-svn: 369081
* Revert r368987, it caused PR43016.Nico Weber2019-08-1632-347/+291
| | | | llvm-svn: 369080
* Disable stack_trace_compressor_fuzzer.Mitch Phillips2019-08-161-13/+17
| | | | | | | | Should hopefully fix the remainder of the buildbot issues. Just disabling this for now with a comment that I'm working on it. Can actually fix the real problem when I'm at a real computer. llvm-svn: 369079
* [analyzer] Analysis: Silence checkersCsaba Dabis2019-08-1613-64/+196
| | | | | | | | | | | | | | | | | | | | | | | Summary: This patch introduces a new `analyzer-config` configuration: `-analyzer-config silence-checkers` which could be used to silence the given checkers. It accepts a semicolon separated list, packed into quotation marks, e.g: `-analyzer-config silence-checkers="core.DivideZero;core.NullDereference"` It could be used to "disable" core checkers, so they model the analysis as before, just if some of them are too noisy it prevents to emit reports. This patch also adds support for that new option to the scan-build. Passing the option `-disable-checker core.DivideZero` to the scan-build will be transferred to `-analyzer-config silence-checkers=core.DivideZero`. Reviewed By: NoQ, Szelethus Differential Revision: https://reviews.llvm.org/D66042 llvm-svn: 369078
* [PowerPC] add testcases for folding frame offset - NFCChen Zheng2019-08-161-0/+114
| | | | llvm-svn: 369077
* [clang-tidy] Migrate objc-forbidden-subclassing to use isDerivedFrom 🚛Stephane Moore2019-08-161-28/+1
| | | | | | | | | | | | | | | | | | | | | Summary: This migrates objc-forbidden-subclassing to `isDerivedFrom` as it now supports matching Objective-C interface declarations. Test Notes: Ran clang tools tests. Reviewers: aaron.ballman, gribozavr Reviewed By: aaron.ballman Subscribers: xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66269 llvm-svn: 369076
* [clang-doc] Serialize inherited attributes and methodsDiego Astiazaran2019-08-1613-47/+373
| | | | | | | | | | | clang-doc now serializes the inherited attributes and methods, not only the name of the base class. All inherited are tracked, if B:A and C:B, info of A is included in C. This data is stored in attribute Bases in a RecordInfo. Previously tracked inheritance data, stored in Parents and VParents, hasn't been removed to reduce review load. Differential revision: https://reviews.llvm.org/D66238 llvm-svn: 369075
* gn build: Merge r369064Nico Weber2019-08-161-0/+1
| | | | llvm-svn: 369074
* gn build: Merge r369061Nico Weber2019-08-161-0/+1
| | | | llvm-svn: 369073
* [DebugLine] Don't try to guess the path styleJonas Devlieghere2019-08-153-45/+23
| | | | | | | | | | | In r368879 I made an attempt to guess the path style from the files in the line table. After some consideration I now think this is a poor idea. This patch undoes that behavior and instead adds an optional argument to specify the path style. This allows us to make that decision elsewhere where we have more information. In case of LLDB based on the Unit. llvm-svn: 369072
* Moved binary off add_llvm_executable.Mitch Phillips2019-08-151-1/+1
| | | | | | | | Used add_executable instead, as this allows a standalone compiler-rt to build, as the add_llvm_executable build target isn't accessible in a standalone CRT preparation. llvm-svn: 369071
* [GlobalISel] CSEMIRBuilder: Add support for G_GEPVolkan Keles2019-08-156-29/+70
| | | | | | | | | | | | | | | | | | Summary: This patch adds G_GEP to `shouldCSEOpc` so that it can be CSEd. It also refactors `translateGetElementPtr` by replacing `createGenericVirtualRegister` calls with types. Reviewers: aditya_nandakumar, arsenm, dsanders, paquette, aemerson Reviewed By: aditya_nandakumar Subscribers: wdng, rovka, javed.absar, hiraditya, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66316 llvm-svn: 369070
* [ARM][LowOverheadLoops] Fix generated code for "revert".Eli Friedman2019-08-154-7/+7
| | | | | | | | | | | | | | | | | | Two issues: 1. t2CMPri shouldn't use CPSR if it isn't predicated. This doesn't really have any visible effect at the moment, but it might matter in the future. 2. The t2CMPri generated for t2WhileLoopStart might need to use a register that isn't LR. My team found this because we have a patch to track register liveness late in the pass pipeline. I'll look into upstreaming it to help catch issues like this earlier. Differential Revision: https://reviews.llvm.org/D66243 llvm-svn: 369069
* [clang-doc] Sort index elements case insensitiveDiego Astiazaran2019-08-153-2/+43
| | | | | | | | Implement logic to compare the references of the index case insensitive. Differential revision: https://reviews.llvm.org/D66299 llvm-svn: 369068
* Re-instate 369051.Mitch Phillips2019-08-151-1/+2
| | | | | | | Looks like I accidentally reverted r369051 to the old CMake-version-specific flag when committing 369055. llvm-svn: 369067
* [NewPM][PassInstrumentation] Fix test added in r369024.David L. Jones2019-08-151-2/+2
| | | | | | | | llvm-lto2 doesn't treat "-" as stdout, so the test added in r369024 creates a file named "-.0". This patch makes the test look more like other tests that use llvm-lto2. llvm-svn: 369066
* [clang-doc] Fix use of source-root flagDiego Astiazaran2019-08-152-9/+7
| | | | | | | | | | The value, if any, of --source-root flag was not being used. This has been fixed and the logic was moved to the ClangDocContext contructor. Differential revision: https://reviews.llvm.org/D66268 llvm-svn: 369065
* [Support] Re-introduce the RWMutexImpl for macOS < 10.12Jonas Devlieghere2019-08-153-78/+306
| | | | | | | | | | | | | In r369018, Benjamin replaced the custom RWMutex implementation with their C++14 counterpart. Unfortunately, std::shared_timed_mutex is only available on macOS 10.12 and later. This prevents LLVM from compiling even on newer versions of the OS when you have an older deployment target. This patch reintroduced the old RWMutexImpl but guards it by the macOS availability macro. Differential revision: https://reviews.llvm.org/D66313 llvm-svn: 369064
* [clang-doc] Fix bitcode writer for access specifiersDiego Astiazaran2019-08-1510-11/+41
| | | | | | | | | | | | | | | Bitcode writer was not emitting the corresponding record for the Access attribute of a FunctionInfo. This has been added. AS_none was being used as the default value for any AcesssSpecifier attribute (in FunctionInfo and MemberTypeInfo), this has been changed to AS_public because this is the enum value that evaluates to 0. The bitcode writer doesn't write values that are 0 so if an attribute was set to AS_public, this value is not written and after reading the bitcode it would have the default value which is AS_none. This is why the default value is now AS_public. Differential Revision: https://reviews.llvm.org/D66151 llvm-svn: 369063
* Move isPointerOffset function to ValueTracking (NFC).Evgeniy Stepanov2019-08-153-86/+91
| | | | | | | | | | | | | | Summary: To be reused in MemTag sanitizer. Reviewers: pcc, vitalybuka, ostannard Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66165 llvm-svn: 369062
* [Bugpoint redesign] Added Pass to Remove Global VariablesDiego Trevino Ferrer2019-08-156-0/+137
| | | | | | | | | | | | | | | | | Summary: This pass tries to remove Global Variables, as well as their derived uses. For example if a variable `@x` is used by `%call1` and `%call2`, both these uses and the definition of `@x` are deleted. Moreover if `%call1` or `%call2` are used elsewhere those uses are also deleted, and so on recursively. I'm still uncertain if this pass should remove derived uses, I'm open to suggestions. Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64176 > llvm-svn: 368918 llvm-svn: 369061
* [Bugpoint redesign] Output option can now print to STDOUTDiego Trevino Ferrer2019-08-156-51/+45
| | | | | | | | | | | | | | | | | | Summary: This also changes all the outs() statements to errs() so the output and progress streams don't get mixed. This has been added because D64176 had flaky tests, which I believe were because the reduced file was being catted into `FileCheck`, instead of being pass from STDOUT directly. Reviewers: chandlerc, dblaikie, xbolva00 Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66314 llvm-svn: 369060
* Revert "[Support] Re-introduce the RWMutexImpl for macOS < 10.12"Jonas Devlieghere2019-08-151-63/+0
| | | | | | This doesn't work (yet). llvm-svn: 369059
* [AIX] For XL, pick GCC-compatible std & default warning optionsHubert Tong2019-08-151-18/+31
| | | | | | | | | | | | | | | | | | | | Summary: LLVM now requires C++14. For IBM XL compilers with C++14 support, this can be done with the GCC-style options. The relevant block in the CMake file is split up into smaller parts as part of this patch to allow the common cases to be shared. Reviewers: jfb, jasonliu, daltenty, xingxue Reviewed By: jfb, xingxue Subscribers: mstorsjo, mgorny, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66256 llvm-svn: 369058
OpenPOWER on IntegriCloud