summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* DebugInfo: Use DWP cu_index to speed up symbolizing (as intended)David Blaikie2017-07-303-3/+29
| | | | | | | | | | | I was a bit lazy when I first implemented this & skipped the index lookup - obviously for large files this becomes pretty crucial, so here we go, do the index lookup. Speeds up large DWP symbolizing by... lots. (20m -> 20s, actually, maybe more in a release build (that was a release build without index lookup, compared to a debug/non-release build with the index usage)) llvm-svn: 309507
* DebugInfo: Group member variable along with the restDavid Blaikie2017-07-301-3/+3
| | | | | | | Committed in r309498 I didn't spot where the rest of the private members were in DWARFContext at the time - group them up again. llvm-svn: 309506
* [clang-reorder-fields] Emit warning when reordering breaks member init list ↵Alexander Shaposhnikov2017-07-304-16/+181
| | | | | | | | | | | | | dependencies This diff adds a warning emitted by clang-reorder-fields when reordering breaks dependencies in the initializer list. Patch by Sam Conrad! Differential revision: https://reviews.llvm.org/D35972 llvm-svn: 309505
* CodeGenModule.cpp: [PR33810][Modules] Remove an assertion that confirms ↵NAKAMURA Takumi2017-07-301-2/+0
| | | | | | | MangledDeclNames[CanonicalGD] might be still empty. FIXME: It is accepted that MangledDeclNames[CanonicalGD] is overwritten here? llvm-svn: 309504
* PR33902: Invalidate line number cache when adding more text to existing buffer.Richard Smith2017-07-302-0/+13
| | | | | | | | This led to crashes as the line number cache would report a bogus line number for a line of code, and we'd try to find a nonexistent column within the line when printing diagnostics. llvm-svn: 309503
* [X86] Add addsub intrinsics to the intrinsic lowering table so we have a ↵Craig Topper2017-07-302-48/+24
| | | | | | single set of isel patterns. llvm-svn: 309502
* CodeGenModule.cpp: [PR33810][Modules] Avoid reusing FoundStr to try to fix ↵NAKAMURA Takumi2017-07-301-6/+6
| | | | | | | | crash. MangledDeclNames might grow up and be reallocated when it were reused by reentering CodeGenModule::getMangledName(). llvm-svn: 309501
* Refactor the build{Module|Function}SimplificationPipeline to expose ↵Dehao Chen2017-07-302-28/+37
| | | | | | | | | | | | | | | | optimization phase. Summary: This is in preparation of https://reviews.llvm.org/D36052 Reviewers: chandlerc, davidxl, tejohnson Reviewed By: chandlerc Subscribers: sanjoy, llvm-commits Differential Revision: https://reviews.llvm.org/D36053 llvm-svn: 309500
* CodeGenModule.cpp: [PR33810][Modules] Make sure actual memory corruption ↵NAKAMURA Takumi2017-07-301-0/+2
| | | | | | before random crash with -fmodules. llvm-svn: 309499
* DebugInfo: Provide option for explicitly specifying the name of the DWP fileDavid Blaikie2017-07-306-25/+48
| | | | | | | | | | | | | | | | If you've archived the DWP file somewhere it's probably useful to be able to just tell llvm-symbolizer where it is when you're symbolizing stack traces from the binary. This only provides a mechanism for specifying a single DWP file, good if you're symbolizing a program with a single DWP file, but it's likely if the program is dynamically linked that you might have a DWP for each dynamic library - in which case this feature won't help (at least as it's surfaced in llvm-symbolizer for now) - in theory it could be extended to specify a collection of DWP files that could all be consulted for split CU hash resolution. llvm-svn: 309498
* Migrate PGOMemOptSizeOpt to use new OptimizationRemarkEmitter PassSam Elliott2017-07-304-14/+61
| | | | | | | | | | | | | | | | | Summary: Fixes PR33790. This patch still needs a yaml-style test, which I shall write tomorrow Reviewers: anemet Reviewed By: anemet Subscribers: anemet, llvm-commits Differential Revision: https://reviews.llvm.org/D35981 llvm-svn: 309497
* Improve readability of CXX method overrides listLenar Safin2017-07-291-2/+5
| | | | | | | | | | | | | | | Summary: Separate CXX method overrides list entries with commas. Reviewers: lhames Reviewed By: lhames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D35800 llvm-svn: 309496
* [AArch64] Tie source and destination operands for AESMC/AESIMC. Florian Hahn2017-07-295-84/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Most CPUs implementing AES fusion require instruction pairs of the form AESE Vn, _ AESMC Vn, Vn and AESD Vn, _ AESIMC Vn, Vn The constraint is added to AES(I)MC instructions which use the result of an AES(E|D) instruction by using AES(I)MCTrr pseudo instructions, which constraint source and destination registers to be the same. A nice side effect of this change is that now all possible pairs are scheduled back-to-back on the exynos-m1 for the misched-fusion-aes.ll test case. I had to update aes_load_store. The version I added initially was very reduced and with the new constraint, AESE/AESMC could not be scheduled back-to-back. I updated the test to be more realistic and still expose the same scheduling problem as the initial test case. Reviewers: t.p.northover, rengolin, evandro, kristof.beyls, silviu.baranga Reviewed By: t.p.northover, evandro Subscribers: aemerson, javed.absar, llvm-commits Differential Revision: https://reviews.llvm.org/D35299 llvm-svn: 309495
* [AArch64] Use 8 bytes as preferred function alignment on Cortex-A53.Florian Hahn2017-07-292-2/+4
| | | | | | | | | | | | | | | | | | Summary: This change gives a 0.25% speedup on execution time, a 0.82% improvement in benchmark scores and a 0.20% increase in binary size on a Cortex-A53. These numbers are the geomean results on a wide range of benchmarks from the test-suite and a range of proprietary suites. Reviewers: t.p.northover, aadg, silviu.baranga, mcrosier, rengolin Reviewed By: rengolin Subscribers: grimar, davide, aemerson, rengolin, javed.absar, kristof.beyls, llvm-commits Differential Revision: https://reviews.llvm.org/D35568 llvm-svn: 309494
* MC: simplify internal function call parameterSaleem Abdulrasool2017-07-291-30/+26
| | | | | | | | | | Rather than passing along most of the parameters, pass a reference to the MCDWARFrameInfo instead. This makes it easier to pass additional information about the frame to the checks. We need to keep the extra constructor for the Key around to allow the construction of the null and tombstone keys. NFC. llvm-svn: 309493
* MC: account for the return column in the CIE keySaleem Abdulrasool2017-07-292-9/+25
| | | | | | | | If the return column is different, we cannot coalesce the CIE across the FDEs. Add that to the key calculation. This ensures that we emit a separate CIE. llvm-svn: 309492
* Remove Debug metadata from copied instruction to prevent Module verification ↵Singapuram Sanjay Srivallabh2017-07-292-0/+112
| | | | | | | | | | | | | | | | | | | | | | | failure Summary: **Remove debug metadata from instruction to be copied to prevent the source file's debug metadata being copied into GPUModule and eventually failing Module verification and ASM string codegeneration.** When copying the instruction onto the Module meant for the GPU, debug metadata attached to an instruction causes all related metadata to be pulled into the Module, including the DICompileUnit, which is not listed in llvm.dbg.cu of the Module. This fails the verification of the Module and generation of the ASM string. The only debug metadata of the instruction, the DebugLoc, is unset by this patch. Reviewers: grosser, bollu, Meinersbur Reviewed By: grosser, bollu Subscribers: pollydev Tags: #polly Differential Revision: https://reviews.llvm.org/D35630 llvm-svn: 309490
* [Simplify] Implement write accesses coalescing.Michael Kruse2017-07-2926-13/+1037
| | | | | | | | | | | | | | | | | Write coalescing combines write accesses that - Write the same llvm::Value. - Write to the same array. - Unless they do not write anything in a statement instance (partial writes), write to the same element. - There is no other access between them that accesses the same element. This is particularly useful after DeLICM, which leaves partial writes to disjoint domains. Differential Revision: https://reviews.llvm.org/D36010 llvm-svn: 309489
* [X86][AVX] Ensure vector non-temporal load/store intrinsics force pointer ↵Simon Pilgrim2017-07-294-35/+19
| | | | | | | | | | | | alignment (PR33830) Clang specifies a max type alignment of 16 bytes on darwin targets (annoyingly in the driver not via cc1), meaning that the builtin nontemporal stores don't correctly align the loads/stores to 32 or 64 bytes when required, resulting in lowering to temporal unaligned loads/stores. This patch casts the vectors to explicitly aligned types prior to the load/store to ensure that the require alignment is respected. Differential Revision: https://reviews.llvm.org/D35996 llvm-svn: 309488
* Fix test failure without X86 backendHiroshi Inoue2017-07-291-0/+0
| | | | | | move test/Transforms/SimplifyCFG/disable-lookup-table.ll into test/Transforms/SimplifyCFG/X86/disable-lookup-table.ll to avoid test failure when X86 backend is not enabled llvm-svn: 309487
* [SelectionDAG][X86] CombineBT - more aggressively determine demanded bitsSimon Pilgrim2017-07-293-17/+21
| | | | | | | | | | | | This patch is in 2 parts: 1 - replace combineBT's use of SimplifyDemandedBits (hasOneUse only) with SelectionDAG::GetDemandedBits to more aggressively determine the lower bits used by BT. 2 - update SelectionDAG::GetDemandedBits to support ANY_EXTEND - if the demanded bits are only in the non-extended portion, then peek through and demand from the source value and then ANY_EXTEND that if we found a match. Differential Revision: https://reviews.llvm.org/D35896 llvm-svn: 309486
* [tests] Do not emity binary bitcode to stdout in RegionInfo testsTobias Grosser2017-07-2919-19/+19
| | | | llvm-svn: 309485
* Fix incorrect assertion condition.Victor Leschuk2017-07-291-2/+2
| | | | llvm-svn: 309484
* [OCaml] Pass -D/-UNDEBUG through to ocamlcMichal Gorny2017-07-291-0/+5
| | | | | | | | | | Detect [/-][DU]NDEBUG in CMAKE_C_FLAGS* and pass them through to ocamlc. This is necessary because their value might affect visibility of dump functions in LLVM and ocamlc uses its own compiler and flags by default. Differential Revision: https://reviews.llvm.org/D35898 llvm-svn: 309483
* Update the test to make windows bot pass.Dehao Chen2017-07-292-3/+3
| | | | llvm-svn: 309482
* [OCaml] Install dynamic libraries in 'stubdirs' directoryMichal Gorny2017-07-291-1/+1
| | | | | | | | | | | | | | | | Install the OCaml dynamic libraries in the 'stubdirs' directory rather than the llvm subdirectory in order to fix running executables created by ocamlc. Otherwise, the executables fail to run being unable to locate the libraries (unless the LLVM directory is explicitly added to LD_LIBRARY_PATH). The staging directories are not altered since they work for our development setup anyway, and installing into two directories would unnecessarily make the code more complex. Differential Revision: https://reviews.llvm.org/D35995 llvm-svn: 309481
* [SCEV] Change an early exit to an assert; NFCSanjoy Das2017-07-291-2/+2
| | | | llvm-svn: 309480
* update the test file that was omitted in r309478.Dehao Chen2017-07-291-2/+2
| | | | llvm-svn: 309479
* Refine the PGOOpt and SamplePGOSupport handling.Dehao Chen2017-07-293-14/+32
| | | | | | | | | | | | | | | | | | | Summary: Now that SamplePGOSupport is part of PGOOpt, there are several places that need tweaking: 1. AddDiscriminator pass should *not* be invoked at ThinLTOBackend (as it's already invoked in the PreLink phase) 2. addPGOInstrPasses should only be invoked when either ProfileGenFile or ProfileUseFile is non-empty. 3. SampleProfileLoaderPass should only be invoked when SampleProfileFile is non-empty. 4. PGOIndirectCallPromotion should only be invoked in ProfileUse phase, or in ThinLTOBackend of SamplePGO. Reviewers: chandlerc, tejohnson, davidxl Reviewed By: chandlerc Subscribers: sanjoy, mehdi_amini, eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D36040 llvm-svn: 309478
* AMDGPU: Remove deadcode from AMDGPUInstPrinterTom Stellard2017-07-293-28/+1
| | | | | | | | | | | | Reviewers: arsenm Reviewed By: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, llvm-commits, t-tye Differential Revision: https://reviews.llvm.org/D36034 llvm-svn: 309477
* AMDGPU: Move INDIRECT_BASE_ADDR definition out of common filesTom Stellard2017-07-293-3/+1
| | | | | | | | | | | | | | Summary: This is only used by R600. Reviewers: arsenm Reviewed By: arsenm Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, llvm-commits, t-tye Differential Revision: https://reviews.llvm.org/D35926 llvm-svn: 309476
* [MachineOutliner] NFC: Change IsTailCall to a call class + frame classJessica Paquette2017-07-296-205/+288
| | | | | | | | | | | | | | | | | | | | | This commit - Removes IsTailCall and replaces it with a target-defined unsigned - Refactors getOutliningCallOverhead and getOutliningFrameOverhead so that they don't use IsTailCall - Adds a call class + frame class classification to OutlinedFunction and Candidate respectively This accomplishes a couple things. Firstly, we don't need the notion of *tail call* in the general outlining algorithm. Secondly, we now can have different "outlining classes" for each candidate within a set of candidates. This will make it easy to add new ways to outline sequences for certain targets and dynamically choose an appropriate cost model for a sequence depending on the context that that sequence lives in. Ultimately, this should get us closer to being able to do something like, say avoid saving the link register when outlining AArch64 instructions. llvm-svn: 309475
* [libc++] Hoist extern template above first useShoaib Meenai2017-07-291-1/+2
| | | | | | | | | | | | This function template is referenced inside class basic_string as a friend function. The extern template declaration needs to be above that friend declaration to actually take effect. This is important because this function was marked as exported in r307966, so without the extern template taking effect, it can leak into other DSOs as a visible symbol. llvm-svn: 309474
* lit::shtest-format.py: Make write-bad-encoding.py py3-aware.NAKAMURA Takumi2017-07-291-1/+1
| | | | | | | | | | Traceback (most recent call last): File "llvm/utils/lit/tests/Inputs/shtest-format/external_shell/write-bad-encoding.py", line 5, in <module> sys.stdout.write(b"a line with bad encoding: \xc2.") sys.stdout.write doesn't accept bytes but sys.stdout.buffer.write accepts. llvm-svn: 309473
* AMDGPU: Make areMemAccessesTriviallyDisjoint more aware of segment flatMatt Arsenault2017-07-293-37/+98
| | | | | | | Checking the encoding is insufficient since now there can be global or scratch instructions. llvm-svn: 309472
* AMDGPU: Teach isLegalAddressingMode about global_* instructionsMatt Arsenault2017-07-293-26/+100
| | | | | | | | Also refine the flat check to respect flat-for-global feature, and constant fallback should check global handling, not specifically MUBUF. llvm-svn: 309471
* AMDGPU: Start selecting global instructionsMatt Arsenault2017-07-2930-645/+1111
| | | | llvm-svn: 309470
* [Hexagon] Fix some Clang-tidy modernize-use-using and Include What You Use ↵Eugene Zelenko2017-07-298-216/+279
| | | | | | warnings; other minor fixes (NFC). llvm-svn: 309469
* [libcxx] [test] Change comments to say C++ instead of c++. NFC.Stephan T. Lavavej2017-07-2934-36/+36
| | | | | | | | This makes them consistent (many comments already used uppercase). The special REQUIRES, UNSUPPORTED, and XFAIL comments are excluded from this change. llvm-svn: 309468
* [libcxx] [test] The entire file futures.shared_future/wait_until.pass.cpp ↵Stephan T. Lavavej2017-07-291-130/+130
| | | | | | was indented by 1 space. NFC. llvm-svn: 309467
* [libcxx] [test] In func.wrap.func.con/alloc_F.pass.cpp, fix REQUIRES ↵Stephan T. Lavavej2017-07-291-1/+1
| | | | | | whitespace. NFC. llvm-svn: 309466
* [libcxx] [test] Make files consistently end with newlines, NFC.Stephan T. Lavavej2017-07-2916-16/+16
| | | | llvm-svn: 309465
* [libcxx] [test] Untabify, NFC.Stephan T. Lavavej2017-07-29121-810/+810
| | | | llvm-svn: 309464
* [libcxx] [test] Strip trailing whitespace, NFC.Stephan T. Lavavej2017-07-295-19/+17
| | | | llvm-svn: 309463
* [llvm] Update MachOObjectFile::exports interfaceAlexander Shaposhnikov2017-07-294-8/+5
| | | | | | | | | | This diff removes the second argument of the method MachOObjectFile::exports. In all in-tree uses this argument is equal to "this" and without this argument the interface seems to be cleaner. Test plan: make check-all llvm-svn: 309462
* [ubsan] Diagnose invalid uses of builtins (compiler-rt)Vedant Kumar2017-07-296-0/+79
| | | | | | Differential Revision: https://reviews.llvm.org/D34591 llvm-svn: 309461
* [test] FileCheck-ify a test to avoid a spurious failure, NFCVedant Kumar2017-07-291-1/+4
| | | | | | | The path to one of my source trees contains 'builtin' as a substring, so this test failed. Fix it with FileCheck. llvm-svn: 309460
* [ubsan] Diagnose invalid uses of builtins (clang)Vedant Kumar2017-07-296-16/+95
| | | | | | | | | | | | | | | On some targets, passing zero to the clz() or ctz() builtins has undefined behavior. I ran into this issue while debugging UB in __hash_table from libcxx: the bug I was seeing manifested itself differently under -O0 vs -Os, due to a UB call to clz() (see: libcxx/r304617). This patch introduces a check which can detect UB calls to builtins. llvm.org/PR26979 Differential Revision: https://reviews.llvm.org/D34590 llvm-svn: 309459
* [test] Add test case for -polly-simplify. NFC.Michael Kruse2017-07-291-0/+44
| | | | llvm-svn: 309458
* Fix update_llc_test_checks.py ARM parsingEli Friedman2017-07-281-1/+1
| | | | | | | | | | | | When I tried running the script, the ARM regex parser could not parse my code. It failed because the .Lfunc_end line has a comment at the end of it, so this commit removes the newline at the end of the regex. Patch by Joel Galenson! Differential Revision: https://reviews.llvm.org/D35641 llvm-svn: 309457
OpenPOWER on IntegriCloud