summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* make -ftime-trace also print template argumentsLubos Lunak2019-05-123-4/+17
| | | | | | | | | Without this, I get e.g. 'PerformPendingInstantiations' -> 'std::fill', now I get 'std::fill<unsigned long *, int>'. Differential Revision: https://reviews.llvm.org/D61822 llvm-svn: 360539
* Reject attempts to call non-static member functions on objects outsideRichard Smith2019-05-124-57/+202
| | | | | | | | | | | | | | | | their lifetime in constant expressions. This is undefined behavior per [class.cdtor]p2. We continue to allow this for objects whose values are not visible within the constant evaluation, because there's no way we can tell whether the access is defined or not, existing code relies on the ability to make such calls, and every other compiler allows such calls. This reinstates r360499, reverted in r360531. llvm-svn: 360538
* Fix handling of objects under construction during constant expressionRichard Smith2019-05-126-96/+223
| | | | | | | | | | | | | evaluation. It's not enough to just track the LValueBase that we're evaluating, we need to also track the path to the objects whose constructors are running. This reinstates r360464 (reverted in r360531) with a workaround for an MSVC bug that previously caused the Windows bots to fail. llvm-svn: 360537
* [utils] update_test_checks.py: allow opt-8, opt-9Fangrui Song2019-05-121-1/+2
| | | | | | | | | | Allow using Debian's opt-8, opt-9 with update_test_checks.py Patch by Shawn Landden! Differential Revision: https://reviews.llvm.org/D61148 llvm-svn: 360536
* [X86][SSE] SimplifyDemandedBits - call PEXTRB/PEXTRW ↵Simon Pilgrim2019-05-114-104/+80
| | | | | | | | | | SimplifyDemandedVectorElts as well. See if we can simplify the demanded vector elts from the extraction before trying to simplify the demanded bits. This helps us with target shuffles and hops in particular. llvm-svn: 360535
* [DAG] Add SimplifyDemandedBits support for BITREVERSESimon Pilgrim2019-05-113-4/+11
| | | | | | Pulled out of D58017 while I continue to investigate the BSWAP regression on PPC llvm-svn: 360534
* [X86] Updated shift-mask test targets for D61830Simon Pilgrim2019-05-111-13/+66
| | | | llvm-svn: 360533
* [CommandLine] Add long option flag for cl::ParseCommandLineOptions . Part 5 of 5Don Hinton2019-05-113-21/+115
| | | | | | | | | | | | | | | | | | | Summary: If passed, the long option flag makes the CommandLine parser mimic the behavior or GNU getopt_long. Short options are a single character prefixed by a single dash, and long options are multiple characters prefixed by a double dash. This patch was motivated by the discussion in the following thread: http://lists.llvm.org/pipermail/llvm-dev/2019-April/131786.html Reviewed By: MaskRay Tags: #llvm Differential Revision: https://reviews.llvm.org/D61294 llvm-svn: 360532
* Revert rL360499 and rL360464 from cfe/trunk:Simon Pilgrim2019-05-117-410/+145
| | | | | | | | | | | | | | | | | | | | | | | | Reject attempts to call non-static member functions on objects outside their lifetime in constant expressions. This is undefined behavior per [class.cdtor]p2. We continue to allow this for objects whose values are not visible within the constant evaluation, because there's no way we can tell whether the access is defined or not, existing code relies on the ability to make such calls, and every other compiler allows such calls. ........ Fix handling of objects under construction during constant expression evaluation. It's not enough to just track the LValueBase that we're evaluating, we need to also track the path to the objects whose constructors are running. ........ Fixes windows buildbots llvm-svn: 360531
* [X86] Add scalar shl+lshr -> shift+mask tests (PR40758)Simon Pilgrim2019-05-111-0/+483
| | | | | | As discussed on D61068, many x86 targets can perform 2 immediate shifts quicker than a shift + mask llvm-svn: 360530
* [X86] Add avx512f tests for boolean reductionSimon Pilgrim2019-05-113-275/+1464
| | | | llvm-svn: 360529
* [CostModel][X86] Add min/max reduction costs for all SSE targetsSimon Pilgrim2019-05-1110-601/+703
| | | | | | | | The original costs stopped at SSE42, I've added conservative estimates for everything down to SSE1/SSE2 and moved some of the SSE42 costs to SSE41 (really only the addition of PCMPGT makes any difference). I've also added missing vXi8 costs (we use PHMINPOSUW for i8/i16 for scarily quick results) and 256-bit vector costs for AVX1. llvm-svn: 360528
* [NFC] yaml2obj/yam2elf.cpp whitespace changes: dos2unix removed CRs.Puyan Lotfi2019-05-111-32/+32
| | | | llvm-svn: 360527
* [X86][SSE] Add SimplifyDemandedVectorElts HADD/HSUB handling.Simon Pilgrim2019-05-112-42/+63
| | | | | | Still missing PHADDW/PHSUBW tests because PEXTRW doesn't call SimplifyDemandedVectorElts llvm-svn: 360526
* FixupLEAPass::fixupIncDec - non-LEA opcodes should not happen here. NFCI.Simon Pilgrim2019-05-111-0/+2
| | | | | | Matches what we do in other functions and fixes scan-build warning about uninitialized NewOpcode variable. llvm-svn: 360525
* [X86] Add CMOV_FR32X/CMOV_FR64X pseudo instructions. Use them in fast isel ↵Craig Topper2019-05-114-4/+210
| | | | | | | | to fix a machine verifier error after adding test cases. Fast isel picks the FR32X/FR64X register classes when lowering pseudo select, but it didn't have the right opcode to go with it. llvm-svn: 360524
* [X86] Sink some fast isel code into the only if that uses it. NFCCraig Topper2019-05-111-13/+13
| | | | llvm-svn: 360523
* [X86] Use TLI.getRegClassFor to simplify some more fast isel code. NFCICraig Topper2019-05-111-16/+7
| | | | llvm-svn: 360522
* [MC][X86] Add test cases from PR14056Simon Pilgrim2019-05-111-0/+8
| | | | llvm-svn: 360521
* HexagonConstEvaluator::evaluateHexExt - check incoming opcodes. NFCI.Simon Pilgrim2019-05-111-0/+2
| | | | | | Only certain extension opcodes are supported - fixes scan build warning. llvm-svn: 360520
* [X86][SSE] Tweaked HADD/HSUB SimplifyDemandedVectorEltsSimon Pilgrim2019-05-111-25/+25
| | | | | | Try to ensure we LHS and RHS test coverage llvm-svn: 360519
* [X86][SSE] Add integer HADD/HSUB SimplifyDemandedVectorElts testsSimon Pilgrim2019-05-111-0/+188
| | | | llvm-svn: 360518
* [X86][SSE] Add HADD/HSUB SimplifyDemandedVectorElts testsSimon Pilgrim2019-05-111-0/+223
| | | | | | | | Shows missed opportunities to simplify args. Will add integer HADD/HSUB tests in a future commit. llvm-svn: 360517
* Fix uninitialized variable analyzer warning. NFCI.Simon Pilgrim2019-05-111-1/+1
| | | | llvm-svn: 360516
* ConstantLValueEmitter::tryEmitAbsolute - remove unused variable. NFCI.Simon Pilgrim2019-05-111-3/+1
| | | | | | Duplicate getOffset() call. llvm-svn: 360515
* SelectionDAGISel::CodeGenAndEmitDAG - remove unused variable. NFCI.Simon Pilgrim2019-05-111-3/+0
| | | | llvm-svn: 360514
* [X86] Use getRegClassFor to simplify some code in fast isel. NFCICraig Topper2019-05-111-40/+18
| | | | | | | No need to select the register class based on type and features. It should already be setup by X86ISelLowering. llvm-svn: 360513
* [X86] Don't emit MOVNTDQA loads from fast-isel without SSE4.1.Craig Topper2019-05-112-17/+57
| | | | | | | | We were checking for SSE4.1 for FP types, but not integer 128-bit types. Fixes PR41837. llvm-svn: 360512
* [X86] Add a test case for idempotent atomic operations with speculative load ↵Craig Topper2019-05-112-1/+24
| | | | | | | | hardening. Fix an additional issue found by the test. This test covers the fix from r360475 as well. llvm-svn: 360511
* [SystemZ] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1112-36/+11
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360510
* [Breakpoint] Make breakpoint language agnosticAlex Langford2019-05-115-59/+76
| | | | | | | | | | | | | | | | | | | Summary: Breakpoint shouldn't need to depend on any specific details from a programming language. Currently the only language-specific detail it takes advantage of are the different qualified names an objective-c method name might have when adding a name lookup. This is reasonably generalizable. The current method name I introduced is "GetVariantMethodNames", which I'm not particularly tied to. If you have a better suggestion, please do let me know. Reviewers: JDevlieghere, jingham, clayborg Subscribers: mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D61746 llvm-svn: 360509
* gn build: sort tablegen rules for X86 and AArch64David L. Jones2019-05-112-28/+28
| | | | llvm-svn: 360508
* gn build: merge r360494 and r360502David L. Jones2019-05-116-55/+16
| | | | llvm-svn: 360507
* [Sparc] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1111-34/+9
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360506
* [RISCV] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1110-33/+8
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure llvm-svn: 360505
* [compiler-rt] Fix crtbegin.c compilationShoaib Meenai2019-05-111-4/+4
| | | | | | | We're building with -std=c11 now (as opposed to -std=gnu11), so we can't use GNU extensions and need to spell inline assembly as __asm__. llvm-svn: 360503
* [PowerPC] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1110-34/+9
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360502
* [NVPTX] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1110-34/+9
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360500
* Reject attempts to call non-static member functions on objects outsideRichard Smith2019-05-114-57/+202
| | | | | | | | | | | | | | their lifetime in constant expressions. This is undefined behavior per [class.cdtor]p2. We continue to allow this for objects whose values are not visible within the constant evaluation, because there's no way we can tell whether the access is defined or not, existing code relies on the ability to make such calls, and every other compiler allows such calls. llvm-svn: 360499
* [MSP430] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1110-33/+8
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360498
* [Mips] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1113-37/+11
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360497
* [Lanai] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1110-35/+9
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360496
* [cc1as] Change -compress-debug-sections= to use --Fangrui Song2019-05-115-17/+15
| | | | | | The double dash form is documented by GNU as, used by gcc, and accepted by llvm-mc. llvm-svn: 360495
* [BPF] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1110-34/+8
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360494
* [AVR] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1110-36/+6
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360493
* gn build: merge r360490David L. Jones2019-05-113-29/+8
| | | | llvm-svn: 360492
* gn build: merge r360484 and r360486David L. Jones2019-05-1114-95/+40
| | | | llvm-svn: 360491
* [ARM] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1112-36/+11
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360490
* gn build: merge r360345David L. Jones2019-05-111-0/+1
| | | | llvm-svn: 360489
* [ARC] Move InstPrinter files to MCTargetDesc. NFCRichard Trieu2019-05-1110-31/+5
| | | | | | | | | For some targets, there is a circular dependency between InstPrinter and MCTargetDesc. Merging them together will fix this. For the other targets, the merging is to maintain consistency so all targets will have the same structure. llvm-svn: 360488
OpenPOWER on IntegriCloud