summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [WebAssembly] Make __attribute__((used)) not imply export.Dan Gohman2019-08-2912-18/+39
| | | | | | | | | | Add an WASM_SYMBOL_NO_STRIP flag, so that __attribute__((used)) doesn't need to imply exporting. When targeting Emscripten, have WASM_SYMBOL_NO_STRIP imply exporting. Differential Revision: https://reviews.llvm.org/D62542 llvm-svn: 370415
* [Tests] Precommit a few cases where we're missing oppurtunities for block ↵Philip Reames2019-08-291-0/+66
| | | | | | local simplications off assumes. llvm-svn: 370414
* [lit] Print exit code in for unresolved (lldb)tests.Jonas Devlieghere2019-08-291-2/+2
| | | | | | | | | | | | A test is marked unresolved when we're unable to find PASSED or FAILED in the dotest output. Usually this is because we crashed and when that happens the exit code can give a clue as to why. This patch adds the exit code to the lit output to make it easier to investigate those issues. Differential revision: https://reviews.llvm.org/D66975 llvm-svn: 370413
* [NFC] Test commit - sorted headers.Nandor Licker2019-08-291-1/+1
| | | | llvm-svn: 370412
* [PowerPC] Support extended mnemonics mffprwz etc.Jinsong Ji2019-08-2922-109/+276
| | | | | | | | | | | | | | | | | | | | | | Summary: Reported in https://github.com/opencv/opencv/issues/15413. We have serveral extended mnemonics for Move To/From Vector-Scalar Register Instructions eg: mffprd,mtfprd etc. We only support one of them, this patch add the others. Reviewers: nemanjai, steven.zhang, hfinkel, #powerpc Reviewed By: hfinkel Subscribers: wuzish, qcolombet, hiraditya, kbarton, MaskRay, shchenz, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66963 llvm-svn: 370411
* [AArch64][GlobalISel] Select arithmetic extended register patternsJessica Paquette2019-08-295-41/+906
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This teaches GISel to select patterns which fold an extend plus optional shift into the addressing mode. In particular, adds and subs. Factor out the arith extended register ComplexPatterns in AArch64InstrFormats.td and create GISel equivalents. Add some equivalent functions to the ones in AArch64ISelDAGToDAG: - `selectArithExtendedRegister` - `narrowExtendRegIfNeeded` - `getExtendTypeForInst` `getExtendTypeForInst` includes the checks for loads and stores. This will be used for WRO addressing modes in loads + stores. Teach selectCopy to properly handle subregister copies on the same bank in order to support `narrowExtendRegIfNeeded`. The extended register must be a GPR32, so we need to support same-bank subregister copies. Fix a bug in getSubRegForClass which would cause registers on things like GPR32common to end up getting ssub. Just change the check to look for FPR32 rather than GPR32. For tests: - Add select-arith-extended-reg.mir - Update addsub_ext.ll to include GlobalISel checks Differential Revision: https://reviews.llvm.org/D66835 llvm-svn: 370410
* [X86] Don't emit unreachable stack adjustmentsReid Kleckner2019-08-293-2/+129
| | | | | | | | | | | | | | | | Summary: This is a minor improvement on our past attempts to do this. Fixes PR43155. Reviewers: hans Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66905 llvm-svn: 370409
* Allow '@' to appear in x86 mingw symbolsReid Kleckner2019-08-292-0/+21
| | | | | | | | | | | | | | | | | Summary: There is no reason to differ in assembler behavior here between -msvc and -gnu targets. Without this setting, the text after the '@' is interpreted as a symbol variable, like foo@IMGREL. Reviewers: mstorsjo Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66974 llvm-svn: 370408
* [InstCombine] add possible bswap as widening shuffle test; NFCSanjay Patel2019-08-291-2/+13
| | | | | | Goes with the proposal in D66965. llvm-svn: 370407
* [CFG] Fix CFG for statement-expressions in return values.Artem Dergachev2019-08-293-4/+61
| | | | | | | | | | | We're building the CFG from bottom to top, so when the return-value expression has a non-trivial CFG on its own, we need to continue building from the entry to the return-value expression CFG rather than from the block to which we've just appended the return statement. Fixes a false positive warning "control may reach end of non-void function". llvm-svn: 370406
* Fix the build for MSVC builds using M_PIReid Kleckner2019-08-291-0/+7
| | | | llvm-svn: 370405
* [X86][SSE] combinePMULDQ - pmuldq(x, 0) -> zero vector (PR43159)Simon Pilgrim2019-08-292-3/+120
| | | | | | ISD::isBuildVectorAllZeros permits undef elements to be present, which means we can't return it as a zero vector. PMULDQ/PMULUDQ is an extending multiply so a multiply by zero of the lower 32-bits should result in a zero 64-bit element. llvm-svn: 370404
* [ASan] Version mismatch check follow-upJulian Lettner2019-08-291-2/+2
| | | | | | | | | | | Follow-up for: [ASan] Make insertion of version mismatch guard configurable 3ae9b9d5e40d1d9bdea1fd8e6fca322df920754a This tiny change makes sure that this test passes on our internal bots as well. llvm-svn: 370403
* AMDGPU/GlobalISel: Legalize sin/cosMatt Arsenault2019-08-294-0/+1125
| | | | llvm-svn: 370402
* Avoid crash when dumping NULL Type as JSON.Aaron Ballman2019-08-293-1/+82
| | | | | | Patch by Bert Belder. llvm-svn: 370401
* Remove `FileManager::invalidateCache` as it has no callers anymore. NFC.Volodymyr Sapsai2019-08-292-17/+0
| | | | llvm-svn: 370400
* [InstCombine] reduce duplicated code; NFCSanjay Patel2019-08-291-10/+13
| | | | llvm-svn: 370399
* Revert [MBP] Disable aggressive loop rotate in plain modeJordan Rupprecht2019-08-2958-3251/+3533
| | | | | | | | This reverts r369664 (git commit 51f48295cbe8fa3a44db263b528dd9f7bae7bf9a) It causes many benchmark regressions, internally and in llvm's benchmark suite. llvm-svn: 370398
* Revert enabling MemorySSA.Alina Sbirlea2019-08-296-53/+38
| | | | | | | | Breaks sanitizers bots. Differential Revision: https://reviews.llvm.org/D58311 llvm-svn: 370397
* [DependenceInfo] Compute WAR dependence info using ISL kills. NFC.Michael Kruse2019-08-291-114/+16
| | | | | | | | | | | | | | | When reading code of Dependences::calculateDependences, I noticed that WAR is computed specifically by buildWAR. Given ISL now supports "kills" in approximate dataflow analysis, this patch takes advantage of it. This patch also cleans up a couple lines redundant codes. Patch by bin.narwal <bin.narwal@gmail.com> Differential Revision: https://reviews.llvm.org/D66741 llvm-svn: 370396
* [lldb][NFC] Document options parameter in ClangUserExpression constructorRaphael Isemann2019-08-291-0/+3
| | | | | | Somehow this option was only documented in the swift branch. llvm-svn: 370395
* [test] Fix various module cache bugs and inconsistenciesJonas Devlieghere2019-08-2916-30/+86
| | | | | | | | | | | | | | | | | Currently, lit tests don't set neither the module cache for building inferiors nor the module cache used by lldb when running tests. Furthermore, we have several places where we rely on the path to the module cache being always the same, rather than passing the correct value around. This makes it hard to specify a different module cache path when debugging a a test. This patch reworks how we determine and pass around the module cache paths and fixes the omission on the lit side. It also adds a sanity check to the lit and dotest suites. Differential revision: https://reviews.llvm.org/D66966 llvm-svn: 370394
* [X86] Remove what little support we had for MPXCraig Topper2019-08-2914-64/+39
| | | | | | | | | | | | | | | -Deprecate -mmpx and -mno-mpx command line options -Remove CPUID detection of mpx for -march=native -Remove MPX from all CPUs -Remove MPX preprocessor define I've left the "mpx" string in the backend so we don't fail on old IR, but its not connected to anything. gcc has also deprecated these command line options. https://www.phoronix.com/scan.php?page=news_item&px=GCC-Patch-To-Drop-MPX Differential Revision: https://reviews.llvm.org/D66669 llvm-svn: 370393
* GlobalISel: Don't compute known bits for non-integral GEPMatt Arsenault2019-08-291-2/+7
| | | | llvm-svn: 370392
* [LoopUnrollAndJam] Use Lazy strategy for DTU.Florian Hahn2019-08-291-2/+4
| | | | | | | | | | | | | We can also apply the earlier updates to the lazy DTU, instead of applying them directly. Reviewers: kuhar, brzycki, asbirlea, SjoerdMeijer Reviewed By: brzycki, asbirlea, SjoerdMeijer Differential Revision: https://reviews.llvm.org/D66918 llvm-svn: 370391
* [cmake] enable x86 libfuzzer on WindowsMatthew G McGovern2019-08-291-0/+2
| | | | | | | | - recent commit https://reviews.llvm.org/D66433 enabled libfuzzer to build on windows, this just enables the option to build as part of the the regular build. llvm-svn: 370390
* GlobalISel: Add maskedValueIsZero and signBitIsZero to known bitsMatt Arsenault2019-08-293-0/+33
| | | | | | | I dropped the DemandedElts since it seems to be missing from some of the new interfaces, but not others. llvm-svn: 370389
* GlobalISel: Add known bits to InstructionSelectorMatt Arsenault2019-08-295-4/+16
| | | | | | | | AMDGPU uses this for some addressing mode selection patterns. The analysis run itself doesn't do anything so it seems easier to just always require this than adding a way to opt in. llvm-svn: 370388
* [dotest] Remove deprecated loggin through env variables.Jonas Devlieghere2019-08-291-72/+0
| | | | | | | | | | It used to be possible to enable logging through environment variables read by dotest. This approach is deprecated, as stated in the dotest help output. Instead --channel should be used. Differential revision: https://reviews.llvm.org/D66920 llvm-svn: 370387
* [dotest] Remove the curses result formatter.Jonas Devlieghere2019-08-293-351/+0
| | | | | | | | | | This removes the curses result formatter which appears to be broken. Passing --curses to dotest.py screws up my terminal and doesn't run any tests. It even crashes Python on occasion. Differential revision: https://reviews.llvm.org/D66917 llvm-svn: 370386
* Revert "[TSanRuntime] Upstream thread swift race detector."Davide Italiano2019-08-292-35/+6
| | | | | | Sometimes it's easier to resolve merge conflict than arguing. llvm-svn: 370385
* [MemorySSA & LoopPassManager] Enable MemorySSA as loop dependency. Update tests.Alina Sbirlea2019-08-296-38/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I'm not planning to check this in at the moment, but feedback is very welcome, in particular how this affects performance. The feedback obtains here will guide the next steps towards enabling this. This patch enables the use of MemorySSA in the loop pass manager. Passes that currently use MemorySSA: - EarlyCSE Passes that use MemorySSA after this patch: - EarlyCSE - LICM - SimpleLoopUnswitch Loop passes that update MemorySSA (and do not use it yet, but could use it after this patch): - LoopInstSimplify - LoopSimplifyCFG - LoopUnswitch - LoopRotate - LoopSimplify - LCSSA Loop passes that do *not* update MemorySSA: - IndVarSimplify - LoopDelete - LoopIdiom - LoopSink - LoopUnroll - LoopInterchange - LoopUnrollAndJam - LoopVectorize - LoopReroll - IRCE Reviewers: chandlerc, george.burgess.iv, davide, sanjoy, gberry Subscribers: jlebar, Prazek, dmgreen, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58311 llvm-svn: 370384
* Added 'inline' to functions defined in headers to avoid ODR violationsDmitri Gribenko2019-08-291-13/+12
| | | | llvm-svn: 370383
* [GlobalISel][AArch64] Select llvm.aarch64.stxr* intrinsics.Jessica Paquette2019-08-293-4/+152
| | | | | | | | | | Add a GISelPredicateCode to the stxr_* PatFrags in AArch64InstrAtomics.td. This allows us to select these intrinsics. Differential Revision: https://reviews.llvm.org/D65779 llvm-svn: 370382
* [InstCombine] add tests for bswap disguised as shuffle; NFCSanjay Patel2019-08-291-17/+80
| | | | | | | | | Somewhat motivating case In PR43146: https://bugs.llvm.org/show_bug.cgi?id=43146 But that's a lot more complicated. llvm-svn: 370381
* [GlobalISel][AArch64] Use a GISelPredicateCode to select llvm.aarch64.stlxr.*Jessica Paquette2019-08-294-64/+83
| | | | | | | | | | | | Remove manual selection code for this intrinsic and use a GISelPredicateCode instead. This allows us to fully select this intrinsic without any tricky custom C++ matching. Differential Revision: https://reviews.llvm.org/D65780 llvm-svn: 370380
* Changed FrontendActionFactory::create to return a std::unique_ptrDmitri Gribenko2019-08-2913-58/+114
| | | | | | | | | | Subscribers: jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66947 llvm-svn: 370379
* [AArch64][GlobalISel] Select @llvm.aarch64.ldxr.* intrinsicsJessica Paquette2019-08-293-4/+129
| | | | | | | | | | | Same thing as D66897, but for ldxr.* instead. Add a GISelPredicateCode to the ldxr_* definitions, which allows us to import them. Add select-ldxr-intrin.mir, and update arm64-ldxr-stxr.ll. Differential Revision: https://reviews.llvm.org/D66898 llvm-svn: 370378
* [AArch64][GlobalISel] Select @llvm.aarch64.ldaxr.* intrinsicsJessica Paquette2019-08-294-4/+136
| | | | | | | | | | | | | | Add a GISelPredicateCode to ldaxr_*. This allows us to import the patterns for @llvm.aarch64.ldaxr.*, and thus select them. Add `isLoadStoreOfNumBytes` for the GISelPredicateCode, since each of these intrinsics involves the same check. Add select-ldaxr-intrin.mir, and update arm64-ldxr-stxr.ll. Differential Revision: https://reviews.llvm.org/D66897 llvm-svn: 370377
* [SimplifyCFG] Skip sinking common lifetime markers of `alloca`.Michael Liao2019-08-292-6/+52
| | | | | | | | | | | | | | | Summary: - Similar to the workaround in fix of PR30188, skip sinking common lifetime markers of `alloca`. They are mostly left there after inlining functions in branches. Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D66950 llvm-svn: 370376
* [PowerPC][NFC] Update fp-int-conversions-direct-moves.ll using scriptJinsong Ji2019-08-291-98/+209
| | | | | | Also add -ppc-asm-full-reg-names,-ppc-vsr-nums-as-vr. llvm-svn: 370375
* Fix GetDIEForDeclContext so it only returns entries matching the provided ↵Pavel Labath2019-08-293-3/+52
| | | | | | | | | | | | context Currently, we return all the entries such that their decl_ctx pointer >= decl_ctx provided. Instead, we should return only the ones that decl_ctx pointer == decl_ctx provided. Differential Revision: https://reviews.llvm.org/D66357 Patch by Guilherme Andrade <guiandrade@google.com>. llvm-svn: 370374
* Remove DWARFExpression::LocationListSizePavel Labath2019-08-295-57/+42
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: The only reason for this function's existance is so that we could pass the correct size into the DWARFExpression constructor. However, there is no harm in passing the entire data extractor into the DWARFExpression, since the same code is performing the size determination as well as the subsequent parse. So, if we get malformed input or there's a bug in the parser, we'd compute the wrong size anyway. Additionally, reducing the number of entry points into the location list parsing machinery makes it easier to switch the llvm debug_loc(lists) parsers. While inside, I added a couple of tests for invalid location list handling. Reviewers: JDevlieghere, clayborg Subscribers: aprantl, javed.absar, kristof.beyls, lldb-commits Differential Revision: https://reviews.llvm.org/D66789 llvm-svn: 370373
* [Clangd] NFC: Added fixme for checking for local/anonymous types for ↵Shaurya Gupta2019-08-291-0/+1
| | | | | | extracted parameters llvm-svn: 370372
* [clangd] Update out-of-date links in readme, NFC.Haojian Wu2019-08-291-3/+3
| | | | llvm-svn: 370371
* [NFC][SimplifyCFG] 'Safely extract low bits' pattern will also benefit from ↵Roman Lebedev2019-08-291-0/+35
| | | | | | | | | | | | | | | -phi-node-folding-threshold=3 This is the naive implementation of x86 BZHI/BEXTR instruction: it takes input and bit count, and extracts low nbits up to bit width. I.e. unlike shift it does not have any UB when nbits >= bitwidth. Which means we don't need a while PHI here, simple select will do. And if it's a select, it should then be trivial to fix codegen to select it to BEXTR/BZHI. See https://bugs.llvm.org/show_bug.cgi?id=34704 llvm-svn: 370369
* [ScopBuilder] Remove superfluous while loop in buildDomains. NFC.Michael Kruse2019-08-291-4/+0
| | | | | | | | | | | | The while loop iterating parent loop in ScopBuilder::buildDomains is unnecessary because either L or LD are later unused, this is a simple patch removing it. Patch by bin.narwal <bin.narwal@gmail.com> Differential Revision: https://reviews.llvm.org/D66698 llvm-svn: 370368
* [clangd][NFC] Update background-index command line descriptionKadir Cetinkaya2019-08-291-2/+1
| | | | | | | | | | | | | | | | Summary: We didn't change this in D64019 just in case we revert it back. Deleting it now. Reviewers: hokein, sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D66943 llvm-svn: 370367
* [DAGCombine] Fix shadow variable warnings. NFCI.Simon Pilgrim2019-08-291-12/+12
| | | | llvm-svn: 370365
* DWARFDebugLoc: Make parsing and error reporting more robustPavel Labath2019-08-295-66/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: While examining this class for possible use in lldb, I noticed two things: - it spits out parsing errors directly to stderr - the loclists parser can incorrectly return valid location lists when parsing malformed (truncated) data I improve the stderr situation by making the parseOneLocationList functions return Expected<T>s. The errors are still dumped to stderr by their callers, so this is only a partial fix, but it is enough for my use case, as I intend to parse the locations lists one by one. I fix the behavior in the truncated scenario by using the newly introduced DataExtractor Cursor API. I also add tests for handling the error cases, as they currently have no coverage. Reviewers: dblaikie, JDevlieghere, probinson Subscribers: lldb-commits, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63591 llvm-svn: 370363
OpenPOWER on IntegriCloud