summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* XXXTom Stellard2016-08-261-1/+1
| | | | llvm-svn: 279868
* AMDGPU/SI: Use a better method for determining the largest pressure setsTom Stellard2016-08-263-15/+41
| | | | | | | | | | | | | | | | | | | | | | Summary: There are a few different sgpr pressure sets, but we only care about the one which covers all of the sgprs. We were using hard-coded register pressure set names to determine the reg set id for the biggest sgpr set. However, we were using the wrong name, and this method is pretty fragile, since the reg pressure set names may change. The new method just looks for the pressure set that contains the most reg units and sets that set as our SGPR pressure set. We've also adopted the same technique for determining our VGPR pressure set. Reviewers: arsenm Subscribers: MatzeB, arsenm, llvm-commits, kzhuravl Differential Revision: https://reviews.llvm.org/D23687 llvm-svn: 279867
* clang-cl: Accept MSVC 2015's `/execution-charset:utf-8` flag.Nico Weber2016-08-263-3/+10
| | | | | | | | | | Also makes -fexec-charset accept utf-8 case-insensitively. Like https://reviews.llvm.org/D23807, but for execution-charset. Also replace a few .lower() comparisons with equals_lower(). https://reviews.llvm.org/D23938 llvm-svn: 279866
* Revert "Start reifying error descriptions"Filipe Cabecinhas2016-08-264-130/+12
| | | | | | This reverts r279862 to investigate VS failures. llvm-svn: 279865
* [CMake] Connect Compiler-RT targets to LLVM Runtimes directoryChris Bieneman2016-08-2613-45/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | This patch builds on LLVM r279776. In this patch I've done some cleanup and abstracted three common steps runtime components have in their CMakeLists files, and added a fourth. The three steps I abstract are: (1) Add a top-level target (i.e asan, msan, ...) (2) Set the target properties for sorting files in IDE generators (3) Make the compiler-rt target depend on the top-level target The new step is to check if a command named "runtime_register_component" is defined, and to call it with the component name. The runtime_register_component command is defined in llvm/runtimes/CMakeLists.txt, and presently just adds the component to a list of sub-components, which later gets used to generate target mappings. With this patch a new workflow for runtimes builds is supported. The new workflow when building runtimes from the LLVM runtimes directory is: > cmake [...] > ninja runtimes-configure > ninja asan The "runtimes-configure" target builds all the dependencies for configuring the runtimes projects, and runs CMake on the runtimes projects. Running the runtimes CMake generates a list of targets to bind into the top-level CMake so subsequent build invocations will have access to some of Compiler-RT's targets through the top-level build. Note: This patch does exclude some top-level targets from compiler-rt libraries because they either don't install files (sanitizer_common), or don't have a cooresponding `check` target (stats). llvm-svn: 279863
* Start reifying error descriptionsFilipe Cabecinhas2016-08-264-12/+130
| | | | | | | | | | | | | | | | | | | | | | Summary: This commit sets up the infrastructure to use reified error descriptions, and moves ReportStackOverflow to the new system. After we convert all the errors, we'll be able to simplify ScopedInErrorReport and remove the older debugging mechanism which had some errors partly reified in some way. We'll be able to maintain the external API. ScopedInErrorReport will be able to track one of the reified errors at a time. The purpose of this is so we have its destructor actually print the error and possibly interface with the debugger (will depend on the platform, of course). Reviewers: kcc, samsonov, timurrrr Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D23672 llvm-svn: 279862
* [CMake] Expose runtime component check targetsChris Bieneman2016-08-261-0/+4
| | | | | | This will expose the check targets for runtime project components into the top-level build. It will enable exposing targets like check-asan. llvm-svn: 279861
* [Inliner] Report when inlining fails because callee's def is unavailableAdam Nemet2016-08-264-24/+80
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is obviously an interesting case because it may motivate code restructuring or LTO. Reporting this requires instantiation of ORE in the loop where the call sites are first gathered. I've checked compile-time overhead *with* -Rpass-with-hotness and the worst slow-down was 6% in mcf and quickly tailing off. As before without -Rpass-with-hotness there is no overhead. Because this could be a pretty noisy diagnostics, it is currently qualified as 'verbose'. As of this patch, 'verbose' diagnostics are only emitted with -Rpass-with-hotness, i.e. when the output is expected to be filtered. Reviewers: eraman, chandlerc, davidxl, hfinkel Subscribers: tejohnson, Prazek, davide, llvm-commits Differential Revision: https://reviews.llvm.org/D23415 llvm-svn: 279860
* Make writeToResolutionFile a static helper.Rafael Espindola2016-08-262-12/+10
| | | | llvm-svn: 279859
* TailDuplication: Record blocks that received the duplicated block. NFC.Kyle Butt2016-08-262-3/+17
| | | | | | | This will allow tail duplication during layout to handle the cfg changes more cleanly. llvm-svn: 279858
* [CMake] Fixing LLVM_INCLUDE_TESTS for runtimes directoryChris Bieneman2016-08-261-5/+10
| | | | | | We need to explicitly pass LLVM_INCLUDE_TESTS through from the top-level to the runtimes configuration because it isn't in LLVMConfig.cmake llvm-svn: 279857
* Streamline LTO getComdat invocation (NFC)Teresa Johnson2016-08-261-2/+2
| | | | | | | | We already have obtained a pointer to the underlying GlobalObject, use it directly to find the comdat, rather than using the GlobalValue::getComdat which will do the same thing again. llvm-svn: 279856
* [StreamExecutor] Fix KernelSpec DoxygenJason Henline2016-08-261-5/+5
| | | | | | | | | | | | | | | Summary: There was a typo where \endcode was spelled as \encode and it was keeping the whole file document from rendering. I also added in some \c annotations for inline code stuff to make it look nicer. Reviewers: jprice Subscribers: parallel_libs-commits Differential Revision: https://reviews.llvm.org/D23941 llvm-svn: 279855
* Next set of additional error checks for invalid Mach-O files for bad ↵Kevin Enderby2016-08-269-5/+71
| | | | | | | | LC_SYMTAB’s. This contains the missing checks for LC_SYMTAB load command fields. llvm-svn: 279854
* Swift Calling Convetion: add support for AArch64.Manman Ren2016-08-263-1/+13
| | | | | | | | It will just be the same as the regular calling convention. rdar://28029509 llvm-svn: 279853
* AArch64: avoid assertion on illegal types in performFDivCombine.Tim Northover2016-08-262-3/+51
| | | | | | | | In the code to detect fixed-point conversions and make use of AArch64's special instructions, we weren't prepared for weird types. The fptosi direction got fixed recently, but not the similar sitofp code. llvm-svn: 279852
* [InstCombine] add helper function for icmp (and (sh X, Y), C2), C1 ; NFCSanjay Patel2016-08-262-45/+64
| | | | | | | | Like other recent changes near here, the goal is to allow vector types for all of these folds. Splitting things up makes it easier to incrementally enhance the code and easier to read. llvm-svn: 279851
* Don't crash when trying to capture persistent variables in a block.Sean Callanan2016-08-264-9/+34
| | | | | | | | | Reports an error instead. We can fix this later to make persistent variables work, but right now we hit an LLVM assertion if we get this wrong. <rdar://problem/27770298> llvm-svn: 279850
* [AArch64] Avoid materializing constant values when generating csel instructions.Chad Rosier2016-08-262-0/+115
| | | | | | Differential Revision: https://reviews.llvm.org/D23677 llvm-svn: 279849
* [AsmParser] Placate a -Wmisleading-indentantion warning (GCC7).Davide Italiano2016-08-261-1/+3
| | | | llvm-svn: 279848
* [MC] Move .cv_loc management logic out of MCContextReid Kleckner2016-08-2615-67/+63
| | | | | | | | | | | MCContext already has many tasks, and separating CodeView out from it is probably a good idea. The .cv_loc tracking was modelled on the DWARF tracking which lived directly in MCContext. Removes the inclusion of MCCodeView.h from MCContext.h, so now there are only 10 build actions while I hack on CodeView support instead of 265. llvm-svn: 279847
* [Clang-tidy] Fix some checks documentation style.Eugene Zelenko2016-08-2630-179/+193
| | | | | | Differential revision: https://reviews.llvm.org/D23894 llvm-svn: 279846
* GlobalISel: mark G_FPEXT legal from float to double.Tim Northover2016-08-262-0/+9
| | | | llvm-svn: 279845
* GlobalISel: mark G_FCMP legal on float & double.Tim Northover2016-08-262-0/+39
| | | | llvm-svn: 279844
* GlobalISel: simplify G_ICMP legalization regime.Tim Northover2016-08-263-60/+28
| | | | | | | | | | | | | | It's unclear how the old %res(32) = G_ICMP { s32, s32 } intpred(eq), %0, %1 is actually different from an s1 verison %res(1) = G_ICMP { s1, s32 } intpred(eq), %0, %1 so we'll remove it for now. llvm-svn: 279843
* GlobalISel: legalize sdiv and srem operations.Tim Northover2016-08-269-0/+134
| | | | llvm-svn: 279842
* GlobalISel: legalize under-width divisions.Tim Northover2016-08-263-2/+75
| | | | llvm-svn: 279841
* GlobalISel: mark selects legalTim Northover2016-08-262-0/+22
| | | | llvm-svn: 279840
* GlobalISel: mark float/int conversions legalTim Northover2016-08-262-0/+80
| | | | llvm-svn: 279839
* Don't diagnose non-modular includes when we are not compiling a module.Manman Ren2016-08-267-1/+62
| | | | | | | | | | | | | | This is triggered when we are compiling an implementation of a module, it has relative includes to a VFS-mapped module with umbrella headers. Currently we will find the real path to headers under the umbrella directory, but the umbrella directories are using virtual path. rdar://27951255 Thanks Ben and Richard for reviewing the patch! Differential Revision: http://reviews.llvm.org/D23858 llvm-svn: 279838
* [InstCombine] clean up foldICmpAndConstConst(); NFCSanjay Patel2016-08-261-172/+166
| | | | | | | | 1. Early exit to reduce indent 2. Fix comments and variable names to match 3. Reformat comments / clang-format code llvm-svn: 279837
* Missed a semicolon in r279835Krzysztof Parzyszek2016-08-261-1/+1
| | | | llvm-svn: 279836
* Add some more detailed debugging information in RegisterCoalescerKrzysztof Parzyszek2016-08-261-5/+19
| | | | llvm-svn: 279835
* [InstCombine] add helper function for folding of icmp (and X, C2), C; NFCSanjay Patel2016-08-262-6/+21
| | | | llvm-svn: 279834
* limit the number of instructions per block examined by dead store eliminationBob Haarman2016-08-263-11/+41
| | | | | | | | | | | | Summary: Dead store elimination gets very expensive when large numbers of instructions need to be analyzed. This patch limits the number of instructions analyzed per store to the value of the memdep-block-scan-limit parameter (which defaults to 100). This resulted in no observed difference in performance of the generated code, and no change in the statistics for the dead store elimination pass, but improved compilation time on some files by more than an order of magnitude. Reviewers: dexonsmith, bruno, george.burgess.iv, dberlin, reames, davidxl Subscribers: davide, chandlerc, dberlin, davidxl, eraman, tejohnson, mbodart, llvm-commits Differential Revision: https://reviews.llvm.org/D15537 llvm-svn: 279833
* FileCheck: Minor cleanup of the class PatternSaleem Abdulrasool2016-08-261-8/+6
| | | | | | | | | 1. Add the "explicit" specifier to the single-argument constructor of Pattern 2. Reorder the fields to remove excessive padding (8 bytes). Patch by Alexander Shaposhnikov! llvm-svn: 279832
* [InstCombine] rename variables in foldICmpAndConstant(); NFCSanjay Patel2016-08-261-54/+55
| | | | llvm-svn: 279831
* test commitBob Haarman2016-08-261-1/+0
| | | | llvm-svn: 279830
* [LoopUnroll] Use OptimizationRemarkEmitter directly not via the analysis passAdam Nemet2016-08-263-5/+9
| | | | | | | | | | | | | | | | We can't mark ORE (a function pass) preserved as required by the loop passes because that is how we ensure that the required passes like LazyBFI are all available any time ORE is used. See the new comments in the patch. Instead we use it directly just like the inliner does in D22694. As expected there is some additional overhead after removing the caching provided by analysis passes. The worst case, I measured was LNT/CINT2006_ref/401.bzip2 which regresses by 12%. As before, this only affects -Rpass-with-hotness and not default compilation. llvm-svn: 279829
* [InstCombine] rename variables in foldICmpDivConstant(); NFCSanjay Patel2016-08-261-29/+28
| | | | | | | | | | | Removing the redundant 'CmpRHSV' local variable exposes a bug in the caller foldICmpShrConstant() - it was sending in the div constant instead of the cmp constant. But I have not been able to expose this in a regression test yet - the affected folds all appear to be handled before we ever reach this code. I'll keep trying to find a case as I make changes to allow vector folds in both functions. llvm-svn: 279828
* Add support for -fdiagnostics-absolute-paths: printing absolute paths in ↵Hans Wennborg2016-08-2610-4/+50
| | | | | | | | diagnostics Differential Revision: https://reviews.llvm.org/D23816 llvm-svn: 279827
* Add space between access string and follow-up.Michael Kruse2016-08-264-6/+6
| | | | llvm-svn: 279826
* Add "New access function" to update_check.py classifier.Michael Kruse2016-08-261-0/+2
| | | | | | Lines with this prefix are printed by JSONImporter. llvm-svn: 279825
* Avoid the use of large unsigned values in isl unit testTobias Grosser2016-08-261-1/+3
| | | | | | | | | isl_val_int_from_ui takes an 'unsigned long' which has on 32-bit and LLP64 windows systems only 32 bit. Hence, make sure we do not use it with constants that are larger than 32 bit. Reported-by: Michael Kruse <llvm@meinersbur.de> llvm-svn: 279824
* [lib/LTO] Add an assertion to catch invalid opt levels.Davide Italiano2016-08-261-4/+5
| | | | llvm-svn: 279823
* [AArch64] Avoid materializing constant 1 by using csinc, rather than csel.Chad Rosier2016-08-263-6/+52
| | | | | | | | This is similar to what was done in r261675, but for CSINC rather than CSINV. Differential Revision: https://reviews.llvm.org/D23892 llvm-svn: 279822
* [FIX] Access dimensions should correspond to number of dimensions of the ↵Roman Gareev2016-08-262-4/+6
| | | | | | accesses array. llvm-svn: 279821
* Handle empty functions with debug info in load/store opt passPablo Barrio2016-08-262-1/+55
| | | | | | | | | | | | | | | | | | | | Summary: In fuctions that contained debug info but were empty otherwise, the ARM load/store optimizer could abort. This was because function MergeReturnIntoLDM handled the special case where a Machine Basic BLock is empty by calling MBB.empty(). However, this returns false in presence of debug info, although the function should be considered empty in the eyes of the load/store optimizer. This has been fixed by handling the case where searching through the block finds only debug instructions. Reviewers: rengolin, dexonsmith, llvm-commits, jmolloy Subscribers: t.p.northover, aemerson, rengolin, samparker Differential Revision: https://reviews.llvm.org/D23847 llvm-svn: 279820
* [compiler-rt][XRay] Remove unnecessary assertion.Dean Michael Berris2016-08-261-3/+0
| | | | | | This assert only causes issues with signed/unsigned comparisons. llvm-svn: 279819
* Revert " [compiler-rt] Allow c++ abi to be explictly disabled in cmake ↵Dean Michael Berris2016-08-261-1/+1
| | | | | | | | configuration" This reverts commit 6659b10799b287ad815e49c4f1b01abc4369b03d. llvm-svn: 279818
OpenPOWER on IntegriCloud