summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Make IsSyntheticChildrenGenerated() virtual so that dynamic and synthetic ↵Enrico Granata2016-07-085-2/+46
| | | | | | values can refer back to their parents llvm-svn: 274901
* COFF: remove unused function (touchFile)Saleem Abdulrasool2016-07-082-8/+0
| | | | | | Remove some dead code. NFC. llvm-svn: 274900
* SelectionDAG: Avoid implicit iterator conversions in FastISel, NFCDuncan P. N. Exon Smith2016-07-081-3/+4
| | | | llvm-svn: 274899
* Target: Avoid getFirstTerminator() => pointer, NFCDuncan P. N. Exon Smith2016-07-083-10/+10
| | | | | | | | | | | | | | Stop using an implicit conversion from the return of MachineBasicBlock::getFirstTerminator to MachineInstr*. In two cases, directly dereference to a MachineInstr& since later code assumes it's valid. In a third case, change to an iterator since later code checks against MachineBasicBlock::end. Although the fix for the third case avoids undefined behaviour, I expect this doesn't cause a functionality change in practice (since the basic block already has a terminator). llvm-svn: 274898
* Fix flag name in comment in cuda-version-check.cu.Justin Lebar2016-07-081-1/+1
| | | | llvm-svn: 274897
* Fix memory leak.Rui Ueyama2016-07-084-18/+28
| | | | | | | | | | Symbol's dtors are not called because they are allocated using BumpPtrAllocators. So, members of std::unique_ptr type are not freed when symbols are deallocated. This patch is to allocate Thunks using BumpPtrAllocators. llvm-svn: 274896
* Use shell cat command as a workaround if ADB stat cannot lookup a file.Oleksiy Vyalov2016-07-083-14/+86
| | | | | | http://reviews.llvm.org/D22081 llvm-svn: 274895
* Improving EPCC performance when linking with hwlocJonathan Peyton2016-07-083-2/+16
| | | | | | | | | | | | | | When linking with libhwloc, the ORDERED EPCC test slows down on big machines (> 48 cores). Performance analysis showed that a cache thrash was occurring and this padding helps alleviate the problem. Also, inside the main spin-wait loop in kmp_wait_release.h, we can eliminate the references to the global shared variables by instead creating a local variable, oversubscribed and instead checking that. Differential Revision: http://reviews.llvm.org/D22093 llvm-svn: 274894
* CodeGen: Avoid iterator conversions in TwoAddressInstructionPass, NFCDuncan P. N. Exon Smith2016-07-081-55/+51
| | | | | | | | | | | | Mostly through preferring MachineInstr&, avoid implicit conversions from iterator to pointer. Although this may bitrot (since there are other uses blocking me from removing the implicit operator), this removes the last of the implicit conversions from MachineInstrBundleIterator to MachineInstr* in the LLVMCodeGen build target. llvm-svn: 274893
* CodeGen: Use MachineInstr& in StackSlotColoring, NFCDuncan P. N. Exon Smith2016-07-081-14/+11
| | | | | | Avoid implicit iterator to pointer conversions. llvm-svn: 274892
* [InstCombine] check for one-use before turning simple logic op into a selectSanjay Patel2016-07-082-5/+3
| | | | llvm-svn: 274891
* IR: Set a TargetPrefix for nvvm intrinsicsJustin Bogner2016-07-082-2/+5
| | | | | | | | | Since these are named nvvm_* rather than nvptx_*, we also need to update getArchTypePrefix. It's a bit unusual for getArchTypePrefix not to match the backend name, but I think this fits the intent of the function in this case. llvm-svn: 274890
* [SLPVectorizer][X86] Added fma vectorization testsSimon Pilgrim2016-07-081-0/+562
| | | | llvm-svn: 274889
* CodeGen: Use MachineInstr& in RegisterScavenging, NFCDuncan P. N. Exon Smith2016-07-081-16/+15
| | | | | | | Prefer MachineInstr& in order to avoid implicit conversions from MachineInstrBundleIterator to MachineInstr*. llvm-svn: 274888
* add test to show multi-use outputSanjay Patel2016-07-081-0/+15
| | | | llvm-svn: 274887
* AMDGPU: Minor adjustment to r274817Matt Arsenault2016-07-081-1/+1
| | | | | | | | | | The commit message is inaccurate, modifiesRegister will check for partial defs of exec. We currently don't ever emit partial defs of exec, so it doesn't really matter. llvm-svn: 274886
* CFGTests: Update libdeps.NAKAMURA Takumi2016-07-081-0/+3
| | | | llvm-svn: 274885
* [X86][AVX] Added combine test that should simplify to insertpsSimon Pilgrim2016-07-081-0/+10
| | | | llvm-svn: 274884
* [InstCombine] allow or(sext(A), B) --> A ? -1 : B transform for vectorsSanjay Patel2016-07-082-8/+7
| | | | llvm-svn: 274883
* Fix typo in #ifdef; leave tests commented out b/c gcc 4.8 harks on them.Marshall Clow2016-07-081-2/+2
| | | | llvm-svn: 274882
* Try to fix compilation error in DebugInfoPDBTests.Zachary Turner2016-07-081-1/+3
| | | | llvm-svn: 274881
* Implement LWG685 (which is from C++11!). Fixes PR#28421. Note: this ↵Marshall Clow2016-07-081-2/+123
| | | | | | (subtly) changes the return type of operator-(Iter1, Iter2) where Iter1 is a reverse iterator or a move_iterator, and Iter2 is some other move/reverse iterator type. In practice, I believe that almost every time the second param will be const_XXX and this will mean that the return type will be the same as it was before. llvm-svn: 274880
* clang/unittests/Analysis/CFGTest.cpp: Appease msc targets with ↵NAKAMURA Takumi2016-07-081-1/+1
| | | | | | -fno-delayed-template-parsing. llvm-svn: 274879
* [SystemZ] Add support for the .word directive.Zhan Jun Liau2016-07-082-0/+27
| | | | | | | | | | | | | Summary: Branch off the work to add support for the .word directive, using addAliasForDirective. Reviewers: koriakin Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D22142 llvm-svn: 274878
* [DSE] Minor refactor based on D21007. NFC.Chad Rosier2016-07-081-39/+50
| | | | llvm-svn: 274877
* add vector tests to show missing transformSanjay Patel2016-07-081-0/+22
| | | | llvm-svn: 274876
* [CodeGen, TargetPassConfig] Remove a race from createRegAllocPassDavid Majnemer2016-07-081-6/+14
| | | | | | | | The createRegAllocPass reads and writes to a global variable 'Registry' via calls to getDefault and setDefault. Run this under a call_once to avoid races. llvm-svn: 274875
* PeepholeOptimizer: Make pass name match DEBUG_TYPEMatt Arsenault2016-07-087-13/+13
| | | | llvm-svn: 274874
* Add runtime support for __cpu_model (__builtin_cpu_supports)Alina Sbirlea2016-07-083-1/+820
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This aims to add support for __cpu_model and address Bug 25510. It uses the code from lib/Support/Host.cpp for cpu detection, and creates __cpu_model with that info. Tested on OSX, it builts successfully, but the current version does *not* resolve Bug 25510. The __cpu_model symbol is present in the library but it only gets loaded with -all_load. This patch will not land until this issue is clarified. Built on Linux as well (though libgcc is the default). The use of "asm" required -std=gnu99, hence the cmake change. Corrections on better addressing this are welcome. Note: See additional comments on D20988 (committed as r271921). Reviewers: llvm-commits, joerg, echristo, mehdi_amini Subscribers: mehdi_amini Differential revision: http://reviews.llvm.org/D21033 llvm-svn: 274873
* Revert r274865-r274870Alina Sbirlea2016-07-083-820/+1
| | | | llvm-svn: 274872
* Explicitly export symbols from the sample analyzer pluginJohn Brawn2016-07-082-1/+4
| | | | | | | | | This is done so that it will work when built using MSVC if LLVM_EXPORT_SYMBOLS_FOR_PLUGINS=ON. Differential Revision: http://reviews.llvm.org/D21971 llvm-svn: 274871
* Added comments identifing code sourceAlina Sbirlea2016-07-081-0/+4
| | | | llvm-svn: 274870
* [SystemZ] Add support for missing instructionsZhan Jun Liau2016-07-088-4/+995
| | | | | | | | | | | | | | | | | Summary: Add support to allow clang integrated assembler to recognize some missing instructions, for openssl. Instructions are: LM, LMH, LMY, STM, STMH, STMY, ICM, ICMH, ICMY, SLA, SLAK, TML, TMH, EX, EXRL. Reviewers: uweigand Subscribers: koriakin, llvm-commits Differential Revision: http://reviews.llvm.org/D22050 llvm-svn: 274869
* Check cpuid supported for i386.Alina Sbirlea2016-07-081-1/+29
| | | | | | | | | | Summary: Reviewers: Subscribers: llvm-svn: 274868
* Add default initialization. Add unit test.Alina Sbirlea2016-07-082-1/+20
| | | | llvm-svn: 274867
* clang-format itAlina Sbirlea2016-07-081-40/+38
| | | | llvm-svn: 274866
* Add runtime support for __cpu_model (__builtin_cpu_supports)Alina Sbirlea2016-07-082-1/+771
| | | | | | | | | | | | | | | | | | | Summary: This aims to add support for __cpu_model and address Bug 25510. It uses the code from lib/Support/Host.cpp for cpu detection, and creates __cpu_model with that info. Tested on OSX, it builts successfully, but the current version does *not* resolve Bug 25510. The __cpu_model symbol is present in the library but it only gets loaded with -all_load. This patch will not land until this issue is clarified. Built on Linux as well (though libgcc is the default). The use of "asm" required -std=gnu99, hence the cmake change. Corrections on better addressing this are welcome. Note: See additional comments on D20988 (committed as r271921). Reviewers: llvm-commits, joerg, echristo, mehdi_amini Subscribers: mehdi_amini Differential Revision: http://reviews.llvm.org/D21033 llvm-svn: 274865
* minimize testsSanjay Patel2016-07-081-16/+8
| | | | | | The cmp and load aren't required. llvm-svn: 274864
* Recommit R274836 Add Thunk support framework for ARM and MipsPeter Smith2016-07-0813-64/+861
| | | | | | | | | | | The TinyPtrVector of const Thunk<ELFT>* in InputSections.h can cause build failures on certain compiler/library combinations when Thunk<ELFT> is not a complete type or is an abstract class. Fixed by making Thunk<ELFT> non Abstract. type or is an abstract class llvm-svn: 274863
* Move setName after accessing NameEric Liu2016-07-081-5/+2
| | | | llvm-svn: 274862
* Make a std::string copy of StringRef Name so that it remains valid when the ↵Eric Liu2016-07-081-1/+4
| | | | | | | | | | | | | | original Name is overridden. Summary: lib/IR/AutoUpgrade.cpp:348 and lib/IR/AutoUpgrade.cpp:350 upset sanitizer. Reviewers: bkramer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D22140 llvm-svn: 274861
* regenerate checksSanjay Patel2016-07-081-256/+318
| | | | llvm-svn: 274860
* Don't crash when printing auto variables.Vassil Vassilev2016-07-082-0/+11
| | | | | | Patch by Axel Naumann! llvm-svn: 274859
* [OpenCL] Fix access qualifiers handling for typedefsAlexey Bader2016-07-087-20/+98
| | | | | | | | | | | | | | | | | | | | | | | | | OpenCL s6.6: "Access qualifier must be used with image object arguments of kernels and of user-defined functions [...] If no qualifier is provided, read_only is assumed". This does not define the behavior for image types used in typedef declaration, but following the spec logic, we should allow access qualifiers specification in typedefs, e.g.: typedef write_only image1d_t img1d_wo; Unlike cv-qualifiers, user cannot add access qualifier to a typedef type, i.e. this is not allowed: typedef image1d_t img1d; // note: previously declared 'read_only' here void foo(write_only img1d im) {} // error: multiple access qualifier Patch by Andrew Savonichev. Reviewers: Anastasia Stulova. Differential revision: http://reviews.llvm.org/D20948 llvm-svn: 274858
* [libc++] Check hash before calling __hash_table key_eq functionKwasi Mensah2016-07-081-2/+2
| | | | | | | | | | | | Summary: The current implementations of __hash_table::find used by std::unordered_set/unordered_map call key_eq on each key that lands in the same bucket as the key you're looking for. However, since equal objects mush hash to the same value, you can short-circuit the possibly expensive call to key_eq by checking the hashes first. Reviewers: EricWF Subscribers: kmensah, cfe-commits Differential Revision: http://reviews.llvm.org/D21510 llvm-svn: 274857
* [Sparc] Leon errata fix passes.Chris Dewhurst2016-07-0813-173/+993
| | | | | | | | | | | | Errata fixes for various errata in different versions of the Leon variants of the Sparc 32 bit processor. The nature of the errata are listed in the comments preceding the errata fix passes. Relevant unit tests are implemented for each of these. Note: Running clang-format has changed a few other lines too, unrelated to the implemented errata fixes. These have been left in as this keeps the code formatting consistent. Differential Revision: http://reviews.llvm.org/D21960 llvm-svn: 274856
* Do not expand SDIV when compiling for minimum code sizeSjoerd Meijer2016-07-082-4/+29
| | | | | | Differential Revision: http://reviews.llvm.org/D22139 llvm-svn: 274855
* D22138: Added more Intel compiler versions as allowed build compilersAndrey Churbanov2016-07-081-0/+4
| | | | llvm-svn: 274854
* InstCombine rule to fold truncs whose value is availableAnna Thomas2016-07-084-17/+218
| | | | | | | | | | | | | We can fold truncs whose operand feeds from a load, if the trunc value is available through a prior load/store. This change is from: http://reviews.llvm.org/D21246, which folded the trunc but missed the bitcast or ptrtoint/inttoptr required in the RAUW call, when the load type didnt match the prior load/store type. Differential Revision: http://reviews.llvm.org/D21791 llvm-svn: 274853
* [AMDGPU] fix ds_swizzle_b32 opcode for VI (bz 28371)Valery Pykhtin2016-07-084-4/+24
| | | | | | Differential Revision: http://reviews.llvm.org/D22049 llvm-svn: 274852
OpenPOWER on IntegriCloud