summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [WebAssembly] Fix the CFG Stackifier to handle unoptimized branchesDan Gohman2015-12-162-2/+60
| | | | | | | If a branch both branches to and falls through to the same block, treat it as an explicit branch. llvm-svn: 255803
* [CUDA] renamed cuda_runtime.h wrapper to __cuda_runtime.hArtem Belevich2015-12-164-14/+30
| | | | | | | | | | | | | | Currently it's easy to break CUDA compilation by passing "-isystem /path/to/cuda/include" to compiler which leads to compiler including real cuda_runtime.h from there instead of the wrapper we need. Renaming the wrapper ensures that we can include the wrapper regardless of user-specified include paths and files. Differential Revision: http://reviews.llvm.org/D15534 llvm-svn: 255802
* [CMake] If you're building compiler-rt, the bootstrap build should depend on it.Chris Bieneman2015-12-161-1/+5
| | | | | | Adding optional dependency for the bootstrap targets on compiler-rt. llvm-svn: 255801
* [CMake] Make CLANG_BOOTSTRAP_TARGETS overridableChris Bieneman2015-12-161-3/+4
| | | | | | This allows exposing a custom list of targets from the next stage build up. llvm-svn: 255799
* [CMake] ExternalProject for compiler-rt needs to depend on llvm-config and clangChris Bieneman2015-12-161-2/+1
| | | | | | The add_dependencies call on compiler-rt-configure adds llvm-config and clang to the phony target, but not to the actual configure custom command. We need the dependency bound to the custom command so that it can't be re-ordered by Ninja. llvm-svn: 255798
* LPM: Make callers of LPM.deleteLoopFromQueue update LoopInfo directly. NFCJustin Bogner2015-12-167-29/+18
| | | | | | | | | | | As of r255720, the loop pass manager will DTRT when passes update the loop info for removed loops, so they no longer need to reach into LPPassManager APIs to do this kind of transformation. This change very nearly removes the need for the LPPassManager to even be passed into loop passes - the only remaining pass that uses the LPM argument is LoopUnswitch. llvm-svn: 255797
* AMDGPU: Override getCFInstrCostMatt Arsenault2015-12-163-0/+58
| | | | | | The default cost was 0 with the assumption that it is predictable. llvm-svn: 255796
* MachineScheduler: Add a target hook for deciding which RegPressure sets toTom Stellard2015-12-162-7/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | increase Summary: This patch adds a function called getRegPressureSetScore() to TargetRegisterInfo. The MachineScheduler uses this when comparing instruction that increase the register pressure of different sets to determine which set is safer to increase. This hook is useful for GPU targets where the number of registers in the class is not the best metric for determing which presser set is safer to increase. Future work may include adding more parameters to this function, like for example, the current pressure level of the set or the amount that the pressure will be increased/decreased. Reviewers: qcolombet, escha, arsenm, atrick, MatzeB Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14806 llvm-svn: 255795
* [CMake] Adding llvm-profdata to the list of tools clang needs.Chris Bieneman2015-12-161-2/+4
| | | | | | Bootstrapping clang to generate PGO data (patches coming soon), requires llvm-profdata targets to be generated before clang. llvm-svn: 255794
* Reland "[llvm-readobj] Simplify usage of -codeview flag"Reid Kleckner2015-12-167-17/+19
| | | | | | Relands r255790 with fixed tests. llvm-svn: 255793
* [SLPVectorizer] Ensure dominated reduction values.Charlie Turner2015-12-161-7/+19
| | | | | | | | | | | | | | | | When considering incoming values as part of a reduction phi, ensure the incoming value is dominated by said phi. Failing to ensure this property causes miscompiles. Fixes PR25787. Many thanks to Mattias Eriksson for reporting, reducing and analyzing the problem for me. Differential Revision: http://reviews.llvm.org/D15580 llvm-svn: 255792
* Revert "[llvm-readobj] Simplify usage of -codeview flag"Reid Kleckner2015-12-163-16/+7
| | | | | | This reverts commit r255790. llvm-svn: 255791
* [llvm-readobj] Simplify usage of -codeview flagReid Kleckner2015-12-163-7/+16
| | | | llvm-svn: 255790
* Generate a clang CompilationDatabase when running CMakeBenjamin Kramer2015-12-161-0/+4
| | | | | | | | | This generates a compile_commands.json file, which tells tools like YouCompleteMe and clang_complete exactly how to build each source file. Patch by Justin Lebar! llvm-svn: 255789
* [WebAssembly] Use the new offset syntax for memory operands in inline asm.Dan Gohman2015-12-162-2/+4
| | | | llvm-svn: 255788
* [SystemZ] Sort relocs to avoid code corruption by linker optimizationUlrich Weigand2015-12-162-4/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SystemZ linkers provide an optimization to transform a general- or local-dynamic TLS sequence into an initial-exec sequence if possible. Do do that, the compiler generates a function call to __tls_get_offset, which is a brasl instruction annotated with *two* relocations: - a R_390_PLT32DBL to install __tls_get_offset as branch target - a R_390_TLS_GDCALL / R_390_TLS_LDCALL to inform the linker that the TLS optimization should be performed if possible If the optimization is performed, the brasl is replaced by an ld load instruction. However, *both* relocs are processed independently by the linker. Therefore it is crucial that the R_390_PLT32DBL is processed *first* (installing the branch target for the brasl) and the R_390_TLS_GDCALL is processed *second* (replacing the whole brasl with an ld). If the relocs are swapped, the linker will first replace the brasl with an ld, and *then* install the __tls_get_offset branch target offset. Since ld has a different layout than brasl, this may even result in a completely different (or invalid) instruction; in any case, the resulting code is corrupted. Unfortunately, the way the MC common code sorts relocations causes these two to *always* end up the wrong way around, resulting in wrong code generation by the linker and crashes. This patch overrides the sortRelocs routine to detect this particular pair of relocs and enforce the required order. llvm-svn: 255787
* [SystemZ] Fix assertion failure in adjustSubwordCmpUlrich Weigand2015-12-162-2/+26
| | | | | | | | | | | | | | | | | | | | When comparing a zero-extended value against a constant small enough to be in range of the inner type, it doesn't matter whether a signed or unsigned compare operation (for the outer type) is being used. This is why the code in adjustSubwordCmp had this assertion: assert(C.ICmpType == SystemZICMP::Any && "Signedness shouldn't matter here."); assuming the the caller had already detected that fact. However, it turns out that there cases, in particular with always-true or always- false conditions that have not been eliminated when compiling at -O0, where this is not true. Instead of failing an assertion if C.ICmpType is not SystemZICMP::Any here, we can simply *set* it safely to SystemZICMP::Any, however. llvm-svn: 255786
* [Hexagon] Make memcpy lowering thread-safeTobias Edler von Koch2015-12-164-21/+70
| | | | | | | | This removes an unpleasant hack involving a global variable for special lowering of certain memcpy calls. These are now lowered as intended in EmitTargetCodeForMemcpy in the same way that other targets do it. llvm-svn: 255785
* [PS4][Profile] add "--dependent-lib=libclang_rt.profile-x86_64.a" toPaul Robinson2015-12-162-19/+40
| | | | | | | | | | the CC1 command line when enabling code coverage. Patch by Ying Yi! Differential Revision: http://reviews.llvm.org/D15222 llvm-svn: 255784
* [NFC] Update horizontal reduction test cases.Charlie Turner2015-12-162-2/+2
| | | | | | | These testcases no longer need to specify -slp-vectorize-hor, since it was enabled by default in r252733. llvm-svn: 255783
* [WebAssembly] Support more kinds of inline asm operandsDan Gohman2015-12-162-4/+39
| | | | llvm-svn: 255782
* Install runtime dlls in the INSTALL_DIR/bin directory. NFCSumanth Gundapaneni2015-12-161-2/+4
| | | | | | | | | One of the earlier patches updated the cmake rule to install the runtime dlls in INSTALL_DIR/lib which is not correct. This patch updates the rule to install CMake's RUNTIME in bin directory Differential Revision: http://reviews.llvm.org/D15505 llvm-svn: 255781
* [Packetizer] Add a check whether an instruction should be packetized nowKrzysztof Parzyszek2015-12-162-2/+13
| | | | | | | | Add a function VLIWPacketizerList::shouldAddToPacket, which will allow specific implementations to decide if it is profitable to add given instruction to the current packet. llvm-svn: 255780
* Add RAII wrapper for gold plugin file managementTeresa Johnson2015-12-161-23/+31
| | | | | | Suggested in review of r255256. llvm-svn: 255779
* Add InaccessibleMemOnly and inaccessibleMemOrArgMemOnly attributesVaivaswatha Nagaraj2015-12-1619-14/+105
| | | | | | | | | | | | | | | | | | Summary: This patch introduces two new function attributes InaccessibleMemOnly: This attribute indicates that the function may only access memory that is not accessible by the program/IR being compiled. This is a weaker form of ReadNone. inaccessibleMemOrArgMemOnly: This attribute indicates that the function may only access memory that is either not accessible by the program/IR being compiled, or is pointed to by its pointer arguments. This is a weaker form of ArgMemOnly Test cases have been updated. This revision uses this (https://github.com/llvm-mirror/llvm/commit/d001932f3a8aa1ebd1555162fdce365f011bc292) as reference. Reviewers: jmolloy, hfinkel Subscribers: reames, joker.eph, llvm-commits Differential Revision: http://reviews.llvm.org/D15499 llvm-svn: 255778
* ScopInfo: Directly store MemoryAccessList in InstructionToAccessTobias Grosser2015-12-162-37/+7
| | | | | | | This avoids the need for explicit memory management, simplifies the code and also fixes a memory leak in removeMemoryAccesses. llvm-svn: 255777
* ScopInfo: Introduce getNumberOfArrayAccessesTobias Grosser2015-12-162-1/+24
| | | | | | | Use the new function to clarify that we indeed only want to know it at least one array access is associated with an instruction. llvm-svn: 255776
* Remove the "MacOSX and Linux" and "Linux" targets from Xcode.Todd Fiala2015-12-161-230/+0
| | | | | | | I added these long ago, but as we work to simplify the Xcode project, their lack of use has made them cleanup targets. llvm-svn: 255775
* Wrap Notes in --help output to 80 columnsEd Maste2015-12-161-7/+13
| | | | llvm-svn: 255774
* Make matchers thread compatible, so we can pass them to different threads ↵Manuel Klimek2015-12-161-3/+4
| | | | | | and run them on multiple translation units in parallel. llvm-svn: 255773
* [clang-tidy] google-readability-namespace-comments: ignore stray semicolonsAlexander Kornienko2015-12-162-1/+14
| | | | llvm-svn: 255772
* Include -c, -core in the lldb(1) man pageEd Maste2015-12-161-1/+4
| | | | llvm-svn: 255771
* [clang-tidy] Add namespace support to add_new_check.pyAlexander Kornienko2015-12-161-4/+10
| | | | | | | | | | | | | | Summary: Without namespace you can not create checks with same name in different modules Reviewers: alexfh Subscribers: cfe-commits Patch by Cong Liu! Differential Revision: http://reviews.llvm.org/D15571 llvm-svn: 255770
* Man page whitespace/formatting change to appease igor(1)Ed Maste2015-12-161-11/+18
| | | | | | | | | | | igor is a tool to detect common problems and style conformance issues in man pages and other documents. This is a non-content change to address the items it reported, before making content changes. See http://www.wonkity.com/~wblock/igor/igor.1.html for more information about igor(1). llvm-svn: 255769
* [ELF][MIPS] Handle R_MIPS_HI16/LO16 relocations against _gp_disp symbolSimon Atanasyan2015-12-166-2/+57
| | | | | | | | | | | | The `_gp_disp` is a magic symbol designates offset between start of function and gp pointer into GOT. Only `R_MIPS_HI16` and `R_MIPS_LO16` relocations are permitted with `_gp_disp`. The patch adds the `_gp_disp` as an ignored symbol and adjusts symbol value before call the `relocateOne` for `R_MIPS_HI16/LO16` relocations. Differential Revision: http://reviews.llvm.org/D15480 llvm-svn: 255768
* [SimplifyCFG] Don't create unnecessary PHIsJames Molloy2015-12-162-0/+220
| | | | | | | | | | | | | | In conditional store merging, we were creating PHIs when we didn't need to. If the value to be predicated isn't defined in the block we're predicating, then it doesn't need a PHI at all (because we only deal with triangles and diamonds, any value not in the predicated BB must dominate the predicated BB). This fixes a large code size increase in some benchmarks in a popular embedded benchmark suite. Now with a fix (and fixed tests) for the conformance issue seen in Chromium. llvm-svn: 255767
* [x86] Exclusion of incorrect include headers paths for MCU targetAndrey Bokhanko2015-12-162-0/+8
| | | | | | | | Exclusion of /usr/include and /usr/local/include headers paths for MCU target. Differential Revision: http://reviews.llvm.org/D14954 llvm-svn: 255766
* [clang-tidy] Don't use diag() for debug outputAlexander Kornienko2015-12-161-11/+3
| | | | llvm-svn: 255765
* [ARM] Add ARMv8.2-A FP16 vector instructionsOliver Stannard2015-12-1610-42/+2289
| | | | | | | | | | | | | | ARMv8.2-A adds 16-bit floating point versions of all existing SIMD floating-point instructions. This is an optional extension, so all of these instructions require the FeatureFullFP16 subtarget feature. Note that VFP without SIMD is not a valid combination for any version of ARMv8-A, but I have ensured that these instructions all depend on both FeatureNEON and FeatureFullFP16 for consistency. Differential Revision: http://reviews.llvm.org/D15039 llvm-svn: 255764
* [test] Add ability to expect timeoutsPavel Labath2015-12-164-1/+51
| | | | | | | | | | | | | | | | | Summary: This adds ability to mark test that do not complete due to hangs, crashes, etc., as "expected", to avoid flagging the build red for a known problem. Functionally, this extends the scope of the existing expectedFailureXXX decorators to cover these states as well. Once this is in, I will start replacing the magic list of failing tests in dosep.py with our regular annotations which should hopefully make code simpler. Reviewers: tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D15530 llvm-svn: 255763
* [ARM] Add ARMv8.2-A FP16 scalar instructionsOliver Stannard2015-12-1618-6/+1976
| | | | | | | | | | | | | | | | | | | | | | | | | | | ARMv8.2-A adds 16-bit floating point versions of all existing VFP floating-point instructions. This is an optional extension, so all of these instructions require the FeatureFullFP16 subtarget feature. The assembly for these instructions uses S registers (AArch32 does not have H registers), but the instructions have ".f16" type specifiers rather than ".f32" or ".f64". The top 16 bits of each source register are ignored, and the top 16 bits of the destination register are set to zero. These instructions are mostly the same as the 32- and 64-bit versions, but they use coprocessor 9 rather than 10 and 11. Two new instructions, VMOVX and VINS, have been added to allow packing and extracting two 16-bit floats stored in the top and bottom halves of an S register. New fixup kinds have been added for the PC-relative load and store instructions, but no ELF relocations have been added as they have a range of 512 bytes. Differential Revision: http://reviews.llvm.org/D15038 llvm-svn: 255762
* [X86] Improve shift combiningMichael Kuperstein2015-12-165-853/+1103
| | | | | | | | | | | | | | | | | | | | This folds (ashr (shl a, [56,48,32,24,16]), SarConst) into (shl, (sext (a), [56,48,32,24,16] - SarConst)) or into (lshr, (sext (a), SarConst - [56,48,32,24,16])) depending on sign of (SarConst - [56,48,32,24,16]) sexts in X86 are MOVs. The MOVs have the same code size as above SHIFTs (only SHIFT by 1 has lower code size). However the MOVs have 2 advantages to SHIFTs on x86: 1. MOVs can write to a register that differs from source. 2. MOVs accept memory operands. This fixes PR24373. Patch by: evgeny.v.stupachenko@intel.com Differential Revision: http://reviews.llvm.org/D13161 llvm-svn: 255761
* [SectionMemoryManager] Make better use of virtual memoryKeno Fischer2015-12-163-44/+90
| | | | | | | | | | | | | | | | | Summary: On Windows, the allocation granularity can be significantly larger than a page (64K), so with many small objects, just clearing the FreeMem list rapidly leaks quite a bit of virtual memory space (if not rss). Fix that by only removing those parts of the FreeMem blocks that overlap pages for which we are applying memory permissions, rather than dropping the FreeMem blocks entirely. Reviewers: lhames Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15202 llvm-svn: 255760
* Recommit LiveDebugValues pass after fixing a couple of minor issues.Vikram TV2015-12-1614-5/+1135
| | | | llvm-svn: 255759
* [clang-tidy] Fix a crash in misc-new-delete-overloadsAlexander Kornienko2015-12-162-42/+43
| | | | llvm-svn: 255758
* clang-format: Extend header sort category implementation.Daniel Jasper2015-12-163-8/+18
| | | | | | | | | | Specifically, it is sometimes necessary to keep certain #includes as the first #include, even before the main #include for a .cc file. Switching the category to be signed instead of unsigned isn't ideal, but it seems as good of an option as any and is fully backwards compatible. llvm-svn: 255757
* Remove FileCheck from test case token_landingpad.ll. Chen Li2015-12-161-3/+2
| | | | | | The test case only needs to make sure it does not crash LLVM. llvm-svn: 255755
* [Objective-c] Fix a crash that occurs when ObjCTypeParamList::back() isAkira Hatanaka2015-12-162-1/+17
| | | | | | | | | | | | | | called on an empty list. This commit makes Parser::parseObjCTypeParamListOrProtocolRefs return nullptr if it sees an invalid type parameter (e.g., __kindof) in the type parameter list. rdar://problem/23068920 Differential Revision: http://reviews.llvm.org/D15463 llvm-svn: 255754
* [CodeGen] Use llvm::CmpInst::Predicate instead of unsigned for parameter ↵Craig Topper2015-12-161-18/+14
| | | | | | types in EmitCompare to eliminate some later explicit casts. NFC. llvm-svn: 255753
* Minor change to TailDuplication.cpp to turn on normalization when removing ↵Cong Hou2015-12-161-1/+1
| | | | | | successor llvm-svn: 255752
OpenPOWER on IntegriCloud