summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* SelectionDAG: Select min/max when both are usedMatt Arsenault2016-05-163-2/+95
| | | | | | | | | | | Allow two users of the condition if the other user is also a min/max select. i.e. %c = icmp slt i32 %x, %y %min = select i1 %c, i32 %x, i32 %y %max = select i1 %c, i32 %y, i32 %x llvm-svn: 269699
* Test diamond virtual inheritance in top-level expressions.Sean Callanan2016-05-161-1/+45
| | | | llvm-svn: 269698
* [AArch64] Fix bug in large stack spill slot handling (PR27717)Geoff Berry2016-05-161-1/+3
| | | | | | | | | | | | | | | | | Summary: Fix bug in MachO path where a frame index offset would not be reserved for handling large frames when an extra non-used callee-save register was saved. In the case where the extra register is reserved or not a GPR (e.g. %FP in the MachO case), this would lead to the register scavenger later failing when called from PrologEpilogInserter. Reviewers: t.p.northover Subscribers: aemerson, rengolin, mcrosier, llvm-commits Differential Revision: http://reviews.llvm.org/D20185 llvm-svn: 269697
* Reapply^2 "[ProfileData] (compiler-rt) Use Error in InstrProf and Coverage, NFC"Vedant Kumar2016-05-161-4/+3
| | | | | | | | Sync up with "(llvm) Use Error in InstrProf and Coverage". Differential Revision: http://reviews.llvm.org/D19903 llvm-svn: 269696
* Reapply^2 "[ProfileData] (clang) Use Error in InstrProf and Coverage, NFC"Vedant Kumar2016-05-163-10/+14
| | | | | | | | Sync up with "(llvm) Use Error in InstrProf and Coverage". Differential Revision: http://reviews.llvm.org/D19902 llvm-svn: 269695
* Retry^2 "[ProfileData] (llvm) Use Error in InstrProf and Coverage, NFC"Vedant Kumar2016-05-1618-504/+612
| | | | | | | | | | | | | | | Transition InstrProf and Coverage over to the stricter Error/Expected interface. Changes since the initial commit: - Address undefined-var-template warning. - Fix error message printing in llvm-profdata. - Check errors in loadTestingFormat() + annotateAllFunctions(). - Defer error handling in InstrProfIterator to InstrProfReader. Differential Revision: http://reviews.llvm.org/D19901 llvm-svn: 269694
* Added support to the ASTImporter for C++ constructor initializers.Sean Callanan2016-05-164-2/+171
| | | | | | | | | Also added named casts and propagation of "implicit" to fix the LLDB testsuite. This is a fixed commit of r269546, which was reverted by r269575. Thanks to Aleksei Sidorin for review and advice. llvm-svn: 269693
* llvm-dwp: Streamline duplicate DWO ID diagnostic handlingDavid Blaikie2016-05-162-30/+33
| | | | | | | | Actually use the error return path rather than printing the duplicate information then a separate error. But also just tidy up/deduplicate some of the code for generating the diagnostic text. llvm-svn: 269692
* sync up common profile header /nfcXinliang David Li2016-05-161-9/+27
| | | | llvm-svn: 269690
* [profile] minor code restructuring /NFCXinliang David Li2016-05-164-15/+40
| | | | | | | This is one of the enabler patch to allow value profiler to allocate counter statically. llvm-svn: 269689
* [SystemZ] Support LRVH and STRVH opcodesBryan Chan2016-05-168-5/+417
| | | | | | | | | | | | Summary: On Linux, /usr/include/bits/byteswap-16.h defines __byteswap_16(x) as an inlined LRVH (Load Reversed Half-word) instruction. The SystemZ back-end did not support this opcode and the inlined assembly would cause a fatal error. Reviewers: bryanpkc, uweigand Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D18732 llvm-svn: 269688
* [Lex] inferModuleFromLocation should do no work if there are no modulesDavid Majnemer2016-05-161-0/+3
| | | | | | | | | | | | getModuleContainingLocation ends up on the hot-path for typical C code which can lead to calls to getFileIDSlow. To speed this up, short circuit inferModuleFromLocation when there aren't any modules, implicit or otherwise. This shaves 4-5% build time when building the linux kernel. llvm-svn: 269687
* Don't crash when OS plug-in returns None from any of the functions we might ↵Greg Clayton2016-05-161-16/+24
| | | | | | | | call. <rdar://problem/24489419> llvm-svn: 269686
* Remove extra whitespace. NFC.Chad Rosier2016-05-161-1/+1
| | | | llvm-svn: 269685
* ThinLTO: sort inputs and schedule by decreasing sizeMehdi Amini2016-05-161-4/+18
| | | | | | | | | | | This is a compile time optimization: keeping a large file to process at the end hurts parallelism. The heurisitic used right now is the input buffer size, however we may want to consider the number of functions to import or the different number of files to load for importing as well. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 269684
* [WebAssembly] Mark COPY_LOCAL and TEE_LOCAL instructions has having no side ↵Dan Gohman2016-05-162-3/+7
| | | | | | effects. llvm-svn: 269683
* ThinLTO caching: reload cached file with mmap and drop heap-allocated memory ↵Mehdi Amini2016-05-161-5/+14
| | | | | | | | | | | | buffer This is reducing pressure on the OS memory system, and is NFC when not using a cache. I measure a 10x memory consumption reduction when linking opt with full debug info. From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 269682
* [WebAssembly] Use eqz to negate a branch conditions.Dan Gohman2016-05-162-10/+3
| | | | llvm-svn: 269681
* [Clang][AVX512] completing missing intrinsics for [vpabs] instruction setMichael Zuckerman2016-05-162-0/+61
| | | | | | Differential Revision: http://reviews.llvm.org/D20069 llvm-svn: 269680
* Change embed-bitcode linkage typeSteven Wu2016-05-162-26/+55
| | | | | | | | | | | Embedded bitcode should have private linkage instead of appending or external. Otherwise, it will cause link failure due to duplicated symbols. Also add llvm.embedded.module and llvm.cmdline to llvm.compiler.used so they don't get optimized out. rdar://problem/21555860 llvm-svn: 269679
* [BasicAA] Update comments based on feedback from hfinkel. NFCI.Geoff Berry2016-05-161-1/+4
| | | | | | | Original change Hal's comments were based on: http://reviews.llvm.org/D19730 llvm-svn: 269678
* [WebAssembly] Add a few optimization ideas to README.txt.Dan Gohman2016-05-161-0/+15
| | | | llvm-svn: 269677
* [X86] Remove transformVSELECTtoBlendVECTOR_SHUFFLEMichael Kuperstein2016-05-162-119/+10
| | | | | | | | | | | | | | | The new X86 shuffle lowering can do just fine without transforming vselects into vector_shuffles. It looks like the only thing this code does right now is cause trouble - in particular, it can lead to combine/legalization infinite loops. Note that it's not completely NFC, since some of the shuffle masks get inverted, which may cause slight differences further down the line. We may want to find a way to invert those masks, but that's orthogonal to this commit. This fixes the hang in PR27689. llvm-svn: 269676
* [ms] Reintroduce feature guards in intrinsic headers in Microsoft modeNico Weber2016-05-163-2/+106
| | | | | | | | | | | | | | | | | | | | | Visual Studio's C++ standard library headers include intrin.h, so the intrinsic headers get included a lot more often in Microsoft mode than elsewhere. The AVX512 intrinsics are a lot of code (0.7 MB, causing 30% compile time overhead for small programs including e.g. <string> and 6% compile time overhead for larger projects like e.g. v8). Since multiversioning can't be relied on in Microsoft mode (cl.exe doesn't support it), having faster compiles seems like the much better tradeoff until we have a better intrinsic story going forward (which we'll need for e.g. PR19898). Actually using intrinsics on Windows already requires the right /arch: settings, so this patch should have no big behavior change. See also thread "The intrinsics headers (especially avx512) are too big. What to do about it?" on cfe-dev. http://reviews.llvm.org/D20291 llvm-svn: 269675
* [Hexagon] Make getCallerSavedRegs specific to a register classKrzysztof Parzyszek2016-05-163-33/+61
| | | | llvm-svn: 269674
* Make LLDB print out an explicit marker when it's displaying formatters that ↵Enrico Granata2016-05-162-1/+5
| | | | | | | | are part of a disabled category Fixes rdar://26202006 llvm-svn: 269673
* [PS4] Change the names of some "environmental" things to what ourPaul Robinson2016-05-162-3/+3
| | | | | | | | licensees actually see in the toolchain we deliver to them. This will reduce the set of local patches we have to maintain. The triple is not changing. (The term ORBIS is an internal code name for PS4.) llvm-svn: 269672
* [PS4] Change the names of some "environmental" things to what ourPaul Robinson2016-05-1612-57/+57
| | | | | | | | licensees actually see in the toolchain we deliver to them. This will reduce the set of local patches we have to maintain. The triple is not changing. (The term ORBIS is an internal code name for PS4.) llvm-svn: 269671
* [OpenCL] Add supported OpenCL extensions to target info.Yaxun Liu2016-05-1628-146/+277
| | | | | | | | | | Add supported OpenCL extensions to target info. It serves as default values to save the users of the burden setting each supported extensions and optional core features in command line. Re-commit after fixing build error due to missing override attribute. Differential Revision: http://reviews.llvm.org/D19484 llvm-svn: 269670
* Remove C++11 feature macros in tests. Use TEST_STD_VER instead.Eric Fiselier2016-05-162-7/+1
| | | | llvm-svn: 269669
* [LAA] Rename forwarding conflict detection option (NFC)Matthew Simpson2016-05-162-7/+7
| | | | | | | This patch renames the option enabling the store-to-load forwarding conflict detection optimization. This change was requested in the review of D20241. llvm-svn: 269668
* [LAA] Comment couldPreventStoreLoadForward. NFCAdam Nemet2016-05-162-2/+11
| | | | | | | Also s/Cycles/Iters/ in NumCyclesForStoreLoadThroughMemory to make it clear that this is not about clock cycles but loop cycles/iterations. llvm-svn: 269667
* [LAA] clang-format the function couldPreventStoreLoadForward. NFCAdam Nemet2016-05-161-9/+9
| | | | llvm-svn: 269666
* Add a test for uniqueptr having either NULL and nullptrMarshall Clow2016-05-161-0/+6
| | | | llvm-svn: 269665
* [Hexagon] Simplify HexagonInstrInfo::isPredicableKrzysztof Parzyszek2016-05-162-85/+6
| | | | | | | Remove all the checks for constant extenders from isPredicable. The users of it should be the ones checking cost/profitability. llvm-svn: 269664
* Add a couple of _LIBCPP_ASSERT calls. No functional change.Marshall Clow2016-05-161-0/+2
| | | | llvm-svn: 269663
* Add the hasDynamicExceptionSpec() AST matcher to match function declarations ↵Aaron Ballman2016-05-164-0/+53
| | | | | | | | that have a dynamic exception specification. Patch by Don Hinton. llvm-svn: 269662
* [Modules] Use vfs for (recursive) directory iterationBruno Cardoso Lopes2016-05-164-21/+42
| | | | | | | | | | | | | | | | Clang performs directory walk while searching headers inside modules by using the ::sys::fs instead of ::vfs. This prevents any code that uses the VFS (e.g, reproducer scripts) to actually find such headers, since the VFS will never be searched for those. Change these places to use vfs::recursive_directory_iterator and vfs::directory_iterator instead. Differential Revision: http://reviews.llvm.org/D20266 rdar://problem/25880368 llvm-svn: 269661
* [PM] Port indirect call promotion pass to new pass managerXinliang David Li2016-05-169-0/+27
| | | | llvm-svn: 269660
* [LV] Ensure safe VF for loops with interleaved accessesMatthew Simpson2016-05-162-1/+79
| | | | | | | | | | | | | The selection of the vectorization factor currently doesn't consider interleaved accesses. The vectorization factor is based on the maximum safe dependence distance computed by LAA. However, for loops with interleaved groups, we should instead base the vectorization factor on the maximum safe dependence distance divided by the maximum interleave factor of all the interleaved groups. Interleaved accesses not in a group will be scalarized. Differential Revision: http://reviews.llvm.org/D20241 llvm-svn: 269659
* [compiler-rt] Fix multi-configuration output pathsEtienne Bergeron2016-05-163-16/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: When using a multi-configuration build (i.e. MSVC) the output path where libraries are dropped is incorrect. Example: ``` C:\src\llvm\examples>d:\src\llvm\build\Release\bin\clang-cl.exe -fsanitize=address test.cc LINK : fatal error LNK1181: cannot open input file 'd:\src\llvm\build\Release\bin\..\lib\clang\3.9.0\lib\windows\clang_rt.asan-i386.lib' ``` The dropped executable path contains the configuration 'Release': ``` 'd:\src\llvm\build\Release\bin\..\lib\clang\3.9.0\lib\windows\Release\clang_rt.asan-i386.lib' ``` The variable 'RUNTIME_OUTPUT_DIRECTORY' is used to specify the output directory. But CMAKE is appending the current configuration (i.e. Debug, Release). see: https://cmake.org/cmake/help/v3.0/prop_tgt/RUNTIME_OUTPUT_DIRECTORY.html ``` "Multi-configuration generators (VS, Xcode) append a per-configuration subdirectory to the specified directory." ``` To avoid this problem, the configuration specific variable must be set: 'RUNTIME_OUTPUT_DIRECTORY_DEBUG', 'RUNTIME_OUTPUT_DIRECTORY_RELEASE', and so on. Reviewers: ddunbar, chapuni, rnk Subscribers: kubabrecka, llvm-commits Differential Revision: http://reviews.llvm.org/D20261 llvm-svn: 269658
* [clang-tidy] Cleanups utils filesEtienne Bergeron2016-05-169-46/+19
| | | | | | | | | | | | | | | | | | | Summary: Cleanup some code by using appropriate APIs. Some coding style cleanups. There is no behavior changes. - Function `IncludeSorter::CreateFixIt` can be replaced by `FixItHint::CreateReplacement`. - Function `cleanPath` is a wrapper for `llvm::sys::path::remove_dots`. Reviewers: alexfh Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D20279 llvm-svn: 269656
* [llc] New diagnostic handlerRenato Golin2016-05-1631-34/+69
| | | | | | | | | | | | | | | | | | | | | | Without a diagnostic handler installed, llc's behaviour is to exit on the first error that it encounters. This is very different from the behaviour of clang and other front ends, which try to gather as many errors as possible before exiting. This commit adds a diagnostic handler to llc, allowing it to find and report more than one error. The old behaviour is preserved under a flag (-exit-on-error). Some of the tests fail with the new diagnostic handler, so they have to use the new flag in order to run under the previous behaviour. Some of these are known bugs, others need further investigation. Ideally, we should fix the tests and remove the flag at some point in the future. Reapplied after fixing the LLDB build that was broken due to the new DiagnosticSeverity in LLVMContext.h, and fixed an UB in the new change. Patch by Diana Picus. llvm-svn: 269655
* [LAA] Add option to disable conflict detection (NFC)Matthew Simpson2016-05-161-2/+9
| | | | llvm-svn: 269654
* Use proper capitalization and punctuation per coding standards. NFC.Chad Rosier2016-05-161-1/+1
| | | | llvm-svn: 269652
* [mips] Add test for the dynamic linker when using the mips64el-fedora-linux ↵Vasileios Kalintiris2016-05-161-0/+8
| | | | | | | | | | triple. We should use the musl linker only when there's no environment specified and the vendor is MTI. The new test verifies this behaviour and is a follow-up to the r269411 commit that added the vendor field check. llvm-svn: 269651
* Fixed unused variable warningSimon Pilgrim2016-05-161-1/+0
| | | | llvm-svn: 269650
* [Clang][AVX512] completing missing intrinsics [vsqrt|vrsqrt|vrcp14 ].Michael Zuckerman2016-05-162-0/+190
| | | | | | Differential Revision: http://reviews.llvm.org/D20068 llvm-svn: 269649
* Bump up adb timeout morePavel Labath2016-05-161-1/+1
| | | | | | still seeing very rare timeouts on the buildbot. llvm-svn: 269648
* Xfail TestCrashDuringStep and TestCreateDuringInstructionStep on arm-linuxOmair Javaid2016-05-162-0/+2
| | | | | | | Both of above tests fail on arm and bugs have been reported on android already. Adding arm-linux decorator because android decorator doesnt xfail these test when run on linux. llvm-svn: 269647
OpenPOWER on IntegriCloud