summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [OperandBundles] Treat "deopt" operand bundles speciallySanjoy Das2015-11-266-6/+112
| | | | | | | | | Teach LLVM optimize to more precisely in the presence of "deopt" operand bundles. "deopt" operand bundles imply that the call they're attached to is at least `readonly` (i.e. they don't imply clobber semantics), and they don't capture their bundle operands. llvm-svn: 254118
* Driver: protect from empty -L argsMartell Malone2015-11-261-1/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D12466 llvm-svn: 254117
* AMDGPU: Add llvm.amdgcn.dispatch.ptr intrinsicTom Stellard2015-11-267-1/+48
| | | | | | | | | | | | | | Summary: This returns a pointer to the dispatch packet, which can be used to load information about the kernel dispach. Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D14898 llvm-svn: 254116
* [libFuzzer] clean up the docs, add one more link Kostya Serebryany2015-11-261-3/+12
| | | | llvm-svn: 254115
* [analyzer] Add tests for generalized lambda capture (C++14). NFC.Devin Coughlin2015-11-261-0/+50
| | | | | | | | Add tests demonstrating that the analyzer supports generalized lambda capture. This support falls out naturally from the work Gábor Horváth did adding C++11 lambdas to the analyzer. llvm-svn: 254114
* Sync up with master InstrProfData.incXinliang David Li2015-11-261-1/+1
| | | | llvm-svn: 254113
* Fix a typo introduced in previous patchesXinliang David Li2015-11-261-1/+1
| | | | llvm-svn: 254112
* Fix a comment typo (cashe -> cache)Hal Finkel2015-11-251-1/+1
| | | | llvm-svn: 254111
* [PGO] Implement ValueProfiling Closure interfaces for runtime value profile dataXinliang David Li2015-11-253-10/+270
| | | | | | | | | | | | | | | | This is one of the many steps to commonize value profiling support between profile runtime and compiler/llvm tools. After this change, profiler runtime now can share the same C APIs to do VP serialization/deseriazation with LLVM host tools (and produces value data in identical format between indexed and raw profile). It is not yet enabled in profiler runtime yet. Also added a unit test case to test runtime profile data serialization/deserialization interfaces implemented using common closure code. llvm-svn: 254110
* [safestack] Fix alignment of dynamic allocas.Evgeniy Stepanov2015-11-252-2/+2
| | | | | | Fixes PR25588. llvm-svn: 254109
* Fix a use-after-free in `llvm-config`.Richard Diamond2015-11-251-10/+10
| | | | | | | | | | | | | | | Summary: This could happen if `GetComponentNames` is true, because `Name` from `VisitComponent` would reference a stack instance of `std::string` in `ComputeLibsForComponents`. Reviewers: beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D14913 llvm-svn: 254108
* [analyzer] Include block capture copy expressions in the CFG.Devin Coughlin2015-11-253-2/+130
| | | | | | | | | | | This prevents spurious dead store warnings when a C++ lambda is casted to a block. I've also added several tests documenting our still-incomplete support for lambda-to-block casts. rdar://problem/22236293 llvm-svn: 254107
* [WebAssembly] Fix inline asm support for i64 operands.Dan Gohman2015-11-252-1/+18
| | | | llvm-svn: 254106
* Reapply r254098.George Rimar2015-11-256-60/+212
| | | | | | | | | Fix is (OutputSections.cpp): for (std::pair<const SymbolBody *, size_t> &I : Entries) { => for (std::pair<const SymbolBody *, unsigned> &I : Entries) { llvm-svn: 254105
* [WebAssembly] Fold setne and seteq comparisons into selects.Dan Gohman2015-11-253-34/+154
| | | | llvm-svn: 254104
* Revert r254098 as it seems broke build bot.George Rimar2015-11-256-212/+60
| | | | | | http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/3555 llvm-svn: 254103
* sanitizer_common: remove noisy warning about symbolizer not found.Ivan Krasin2015-11-251-4/+0
| | | | | | | | | | | | | | Summary: In r251553, I added a warning that proved to be super noisy, especially in case of MSan. Removing it for now, and I will probably add some additional diagnostics for symbolizer, when I better understand how to make it properly. Reviewers: eugenis Differential Revision: http://reviews.llvm.org/D14998 llvm-svn: 254102
* [ELF] - Implemented optimizations for @tlsld and @tlsgdGeorge Rimar2015-11-255-22/+145
| | | | | | | | | Implements @tlsld (LD to LE) and @tlsgd (GD to LE) optimizations. Patch does not implement the GD->IE case for @tlsgd. Differential revision: http://reviews.llvm.org/D14870 llvm-svn: 254101
* [libFuzzer] add a flag -exact_artifact_pathKostya Serebryany2015-11-256-0/+13
| | | | llvm-svn: 254100
* [Hexagon] Treat transfers of FP immediates are pseudo instructionsKrzysztof Parzyszek2015-11-252-5/+19
| | | | | | | | This is a temporary fix to address ICE on 2005-10-21-longlonggtu.ll. The proper fix will be to use A2_tfrsi, but it will need more work to teach all users of A2_tfrsi to also expect a floating-point operand. llvm-svn: 254099
* [ELF] - Lazy relocations support for x86 target.George Rimar2015-11-256-60/+212
| | | | | | | | | | | Patch implements lazy relocations for x86. One of features of x86 is that executable files and shared object files have separate procedure linkage tables. So patch implements both cases. Detailed information about instructions used can be found in http://docs.oracle.com/cd/E19620-01/805-3050/chapter6-1235/index.html (search: x86: Procedure Linkage Table). Differential revision: http://reviews.llvm.org/D14955 llvm-svn: 254098
* P0001R1: 'register' storage class specifier is no longer permitted in C++1z.Richard Smith2015-11-255-6/+16
| | | | | | | We will still allow it in system headers, in macros from system headers, when combined with an 'asm' label, and under the flag -Wno-register. llvm-svn: 254097
* [WebAssembly] Add some comments. NFC.Dan Gohman2015-11-251-0/+5
| | | | llvm-svn: 254096
* AMDGPU/SI: select S_ABS_I32 when possible (v2)Marek Olsak2015-11-255-3/+194
| | | | | | | | | | v2: added more tests, moved the SALU->VALU conversion to a separate function It looks like it's not possible to get subregisters in the S_ABS lowering code, and I don't feel like guessing without testing what the correct code would look like. llvm-svn: 254095
* [WebAssembly] Fix WebAssembly register numbering for registers added late.Dan Gohman2015-11-252-0/+9
| | | | | | | | | If virtual registers are created late, mappings to WebAssembly registers need to be added explicitly. This patch adds a function to do so and teaches WebAssemblyPeephole to use it. This fixes an out-of-bounds access on the WARegs vector. llvm-svn: 254094
* [SCCP] More informative message if we don't know how to handle a terminator.Davide Italiano2015-11-251-1/+1
| | | | llvm-svn: 254093
* [ELF2][MIPS] Support R_MIPS_CALL16 relocationSimon Atanasyan2015-11-252-2/+49
| | | | | | | | | R_MIPS_CALL16 relocation provides the same result as R_MIPS_GOT16 relocation but does not need to check the result on overflow. Differential Revision: http://reviews.llvm.org/D14916 llvm-svn: 254092
* AMDGPU: Check feature attributes in SIMachineFunctionInfoMatt Arsenault2015-11-252-9/+134
| | | | llvm-svn: 254091
* [ELF/x86] Implemented R_386_TLS_LE_32, R_386_TLS_LE relocations.George Rimar2015-11-256-5/+103
| | | | | | | | | | | | | | | | | | | | | This patch implements next relocations: R_386_TLS_LE - Negative offset relative to static TLS (GNU version). R_386_TLS_LE_32 - Offset relative to static TLS block. These ones are created when using next code sequences: * @tpoff - The operator must be used to compute an immediate value. The linker will report an error if the referenced variable is not defined or it is not code for the executable itself. No GOT entry is created in this case. * @ntpoff Calculate the negative offset of the variable it is added to relative to the static TLS block. The operator must be used to compute an immediate value. The linker will report an error if the referenced variable is not defined or it is not code for the executable itself. No GOT entry is created in this case. Information was found in Ulrich Drepper, ELF Handling For Thread-Local Storage, http://www.akkadia.org/drepper/tls.pdf, (6.2, p76) Differential revision: http://reviews.llvm.org/D14930 llvm-svn: 254090
* Add hexagonv55 and hexagonv60 as recognized CPUs, make v60 the defaultKrzysztof Parzyszek2015-11-256-36/+63
| | | | llvm-svn: 254089
* [ELF] - simplify Target interface, relocPointsToGot() removed.George Rimar2015-11-253-12/+3
| | | | | | | | | | | | https://docs.oracle.com/cd/E19683-01/817-3677/chapter6-26/index.html says: R_386_GOTPC Resembles R_386_PC32, except that it uses the address of the global offset table in its calculation. The symbol referenced in this relocation normally is _GLOBAL_OFFSET_TABLE_, which also instructs the link-editor to create the global offset table. Currently _GLOBAL_OFFSET_TABLE_ has value == zero. And we use GOT address to calculate the relocation. This patch does not changes that. It just removes the method which is used only for x86. So it is close to non functional change. Differential revision: http://reviews.llvm.org/D14993 llvm-svn: 254088
* AMDGPU: Add some tests for promotion of v2i64 scalar_to_vectorMatt Arsenault2015-11-251-0/+71
| | | | llvm-svn: 254087
* AMDGPU: Make v2i64/v2f64 legal types.Matt Arsenault2015-11-2512-183/+261
| | | | | | | They can be loaded and stored, so count them as legal. This is mostly to fix a number of common cases for load/store merging. llvm-svn: 254086
* Expose isXxxConstant() functions from SelectionDAGNodes.h (NFC)Artyom Skrobov2015-11-259-199/+122
| | | | | | | | | | | | | | Summary: Many target lowerings copy-paste the code to test SDValues for known constants. This code can instead be shared in SelectionDAG.cpp, and reused in the targets. Reviewers: MatzeB, andreadb, tstellarAMD Subscribers: arsenm, jyknight, llvm-commits Differential Revision: http://reviews.llvm.org/D14945 llvm-svn: 254085
* [WebAssembly] Use a physical register to describe ARGUMENT liveness.Dan Gohman2015-11-2511-39/+67
| | | | | | | | | | Instead of trying to move ARGUMENT instructions back up to the top after they've been scheduled or sunk down, use a fake physical register to create a liveness constraint that prevents ARGUMENT instructions from moving down in the first place. This is still not entirely ideal, however it is more robust than letting them move and moving them back. llvm-svn: 254084
* Stop using SFINAE to detect whether a derived-class override of Traverse* canRichard Smith2015-11-251-11/+11
| | | | | | | | | take a queue; some supported versions of GCC believe that this substitution failure is an error. Instead, use a partial specialization to detect the type of a pointer to the corresponding member. This is less general, but good enough for our uses. llvm-svn: 254083
* [CMake] [Darwin] libclang_rt.eprintf should be built with the same CFLAGS as ↵Chris Bieneman2015-11-251-2/+9
| | | | | | the other darwin builtin libraries. llvm-svn: 254082
* Fix problem with Clang-tidy parallel configure build.Eugene Zelenko2015-11-251-2/+2
| | | | | | Differential revision: http://reviews.llvm.org/D14964 llvm-svn: 254081
* [PGO] Regroup functions in better order (NFC)Xinliang David Li2015-11-251-93/+96
| | | | llvm-svn: 254080
* [WebAssembly] Clean up several FIXME comments.Dan Gohman2015-11-256-10/+12
| | | | llvm-svn: 254079
* Be *stupider* about what constitutes a supported language binding.Zachary Turner2015-11-252-29/+2
| | | | | | | | | | | | | | | We were trying to be super smart and find all the supported language bindings. This led to us scanning the directory and treating all subdirectories as language binding directories. This makes it hard to add unrelated code in this folder. Besides, we only support one at the moment - Python. And when new ones are added it will be trivial to just add their names to a list. So this patch gets stupider about how to look for language binding subfolders. Just put them in a list, and use the list. llvm-svn: 254078
* [WebAssembly] Make several tests more strict.Dan Gohman2015-11-257-51/+51
| | | | llvm-svn: 254077
* [WebAssembly] Support for register stackifying with load and store instructions.Dan Gohman2015-11-2518-77/+439
| | | | llvm-svn: 254076
* [WebAssembly] Codegen support for ISD::ExternalSymbolDan Gohman2015-11-255-2/+38
| | | | llvm-svn: 254075
* [clang-tidy] Fix a typo in my latest commit.Alexander Kornienko2015-11-251-2/+2
| | | | llvm-svn: 254074
* [WebAssembly] Add 'final' to some classes. NFC.Dan Gohman2015-11-252-2/+2
| | | | llvm-svn: 254073
* Enable TestMiBreak on LinuxPavel Labath2015-11-251-1/+0
| | | | | | test reliably passed last 100 buildbot runs. Enable it and see what happens. llvm-svn: 254072
* [WebAssembly] Whitespace consistency. NFC.Dan Gohman2015-11-252-2/+0
| | | | llvm-svn: 254071
* [clang-tidy] Const std::move() argument ClangTidy checkAlexander Kornienko2015-11-255-0/+179
| | | | | | | | | | | | ClangTidy check for finding cases when std::move() is called with const or trivially copyable arguments, that doesn't lead to any move or argument but it makes copy. FixIt generates patch for removing call of std::move(). Patch by Vadym Doroshenko! (+ a couple of minor fixes) Differential Revision: http://reviews.llvm.org/D12031 llvm-svn: 254070
* fix typo; NFCSanjay Patel2015-11-251-1/+1
| | | | llvm-svn: 254069
OpenPOWER on IntegriCloud