summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [llvm-objump] Simplify the code. NFCI.Davide Italiano2016-09-181-23/+12
| | | | llvm-svn: 281844
* [lib/LTO] Try harder to reduce code duplication. NFCI.Davide Italiano2016-09-171-13/+14
| | | | llvm-svn: 281843
* [X86][SSE] Added vector udiv combine testsSimon Pilgrim2016-09-171-0/+199
| | | | llvm-svn: 281842
* [X86][SSE] Added vector fcopysign combine testsSimon Pilgrim2016-09-171-0/+722
| | | | | | Also demonstrating the poor lowering of fcopysign... llvm-svn: 281841
* [ThinLTO] Ensure anonymous globals renamed even at -O0Teresa Johnson2016-09-172-1/+10
| | | | | | | | | | | | | | | | | | | | | | Summary: This fixes an issue when files are compiled with -flto=thin at default -O0. We need to rename anonymous globals before attempting to write the module summary because all values need names for the summary. This was happening at -O1 and above, but not before the early exit when constructing the pipeline for -O0. Also add an internal -prepare-for-thinlto option to enable this to be tested via opt. Fixes PR30419. Reviewers: mehdi_amini Subscribers: probinson, llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D24701 llvm-svn: 281840
* [X86][SSE] Added vector mul combine testsSimon Pilgrim2016-09-171-0/+249
| | | | llvm-svn: 281839
* GPGPU: Store back non-read-only scalarsTobias Grosser2016-09-172-2/+231
| | | | | | | | | | | | | | | | We may generate GPU kernels that store into scalars in case we run some sequential code on the GPU because the remaining data is expected to already be on the GPU. For these kernels it is important to not keep the scalar values in thread-local registers, but to store them back to the corresponding device memory objects that backs them up. We currently only store scalars back at the end of a kernel. This is only correct if precisely one thread is executed. In case more than one thread may be run, we currently invalidate the scop. To support such cases correctly, we would need to always load and store back from a corresponding global memory slot instead of a thread-local alloca slot. llvm-svn: 281838
* GPGPU: Detect read-only scalar arrays ...Tobias Grosser2016-09-179-95/+107
| | | | | | and pass these by value rather than by reference. llvm-svn: 281837
* [ELF] - Fix comment. NFC.George Rimar2016-09-171-1/+1
| | | | llvm-svn: 281836
* [ELF] - Added comments. NFC.George Rimar2016-09-171-0/+4
| | | | llvm-svn: 281835
* [X86][SSE] Improve target shuffle mask extractionSimon Pilgrim2016-09-173-22/+16
| | | | | | Add ability to extract vXi64 'vzext_movl' masks on 32-bit targets llvm-svn: 281834
* [X86][AVX] Test target shuffle combining on 32 and 64-bit targetsSimon Pilgrim2016-09-173-512/+1190
| | | | llvm-svn: 281833
* [ELF] - Linkerscript: change locationcounter.s to use llvm-objdumpGeorge Rimar2016-09-171-287/+21
| | | | | | | Previously it used llvm-readobj -s, now changed to llvm-objdump -section-headers, that reduced the output significantly and helps to read/support it. llvm-svn: 281832
* [ELF] - SEGMENT_START's default argument can be an expressionGeorge Rimar2016-09-173-7/+5
| | | | | | | | | | | Our implementation supported integer value previously. ld can use expression, for example, it is OK to write . = SEGMENT_START("foobar", .); Patch implements that. llvm-svn: 281831
* [X86][AVX2] Add target shuffle constant folding testsSimon Pilgrim2016-09-171-0/+30
| | | | llvm-svn: 281830
* [X86][AVX] Add target shuffle constant folding testsSimon Pilgrim2016-09-171-0/+37
| | | | llvm-svn: 281829
* [X86][XOP] Add target shuffle constant folding testsSimon Pilgrim2016-09-171-0/+90
| | | | llvm-svn: 281828
* [X86][SSSE3] Add target shuffle constant folding testsSimon Pilgrim2016-09-171-0/+16
| | | | llvm-svn: 281827
* [clang-rename] Fix handling of unchanged filesAlexander Shaposhnikov2016-09-174-8/+14
| | | | | | | | | | | | | | | | | | | | | | | Fix the output of clang-rename for the files without modifications. Update the code in clang-reorder-fields/tool/ClangReorderFields.cpp to avoid inconsistency. Example: a.h: struct A {}; a.cpp: #include "a.h" int main() { return 0; } Before the changes the output looks like this: clang-rename -qualified-name=A -new-name=B a.cpp <<<<<INVALID SOURCE LOCATION>>>>> Test plan: make -j8 check-clang-tools Differential revision: https://reviews.llvm.org/D24634 llvm-svn: 281826
* [Hexagon] segv while processing SUnit with nullNodePtrRon Lieberman2016-09-172-0/+206
| | | | | | Added BoundaryNode check to isBestZeroLatency function. llvm-svn: 281825
* AMDGPU: Fix broken FrameIndex handlingMatt Arsenault2016-09-177-108/+66
| | | | | | | | | | | | | | | | | We were trying to avoid using a FrameIndex operand in non-pointer operands in a convoluted way, and would break because of using TargetFrameIndex. The TargetFrameIndex should only be used in the case where it makes sense to fold it as part of the addressing mode, otherwise it requires materialization like a normal constant. This wasn't working reliably and failed in the added testcase, hitting the assert when processing the frame index. The TargetFrameIndex was coming from trying to produce an AssertZext limiting the maximum stack size. I'm not sure this was correct to begin with, because it is apparently possible to have a single workitem dispatch that requires all 4G of private memory. llvm-svn: 281824
* AMDGPU: Rename spill operands to match real instructionMatt Arsenault2016-09-172-13/+13
| | | | llvm-svn: 281823
* AMDGPU: Push bitcasts through build_vectorMatt Arsenault2016-09-172-0/+96
| | | | | | | | This reduces the number of copies and reg_sequences when using fp constant vectors. This significantly reduces the code size in local-stack-alloc-bug.ll llvm-svn: 281822
* [tsan] Update fork_atexit.cc to consistently print to stderr (and not stdout)Kuba Brecka2016-09-171-1/+1
| | | | llvm-svn: 281821
* [tsan] Update signal_cond.cc to write to stderr intead of stdoutKuba Brecka2016-09-171-1/+1
| | | | llvm-svn: 281820
* When replacements have the same offset, make replacements with smaller ↵Eric Liu2016-09-172-9/+8
| | | | | | | | | | | | | | | | | length order first in the set. Summary: No behavioral change intended. The change makes iterating the replacements set more intuitive in Replacements class implementation. Previously, insertion is ordered before an deletion/replacement with the same offset, which is counter-intuitive for implementation, especially for a followup patch to support adding insertions around replacements. With the current ordering, we only need to make `applyAllReplacements` iterate the replacements set reversely when applying them so that deletion/replacement is still applied before insertion with the same offset. Reviewers: klimek, djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D24663 llvm-svn: 281819
* [ELF] Linkerscript: fixed bug about commands processing.George Rimar2016-09-172-0/+21
| | | | | | | | | It was possible situation about some commands just were not processed (were skipped) because of a bug appeared when constraint checking used. Testcase is attached. llvm-svn: 281818
* [ELF] - Fixed mistypes in comments. NFC.George Rimar2016-09-171-2/+2
| | | | llvm-svn: 281817
* clang-format: [JS] Fix a crash in handledTemplateStrings.Daniel Jasper2016-09-172-0/+5
| | | | llvm-svn: 281816
* [compiler-rt] Disable building of profiling runtime when LLVM_USE_SANITIZER ↵Kuba Brecka2016-09-171-1/+1
| | | | | | | | | | is set Currently, when doing a ASanified build of LLVM (with Clang, compiler-rt and libcxx) via -DLLVM_USE_SANITIZER=Address and not using any other options, we already disable building of sanitizer runtimes (because they themselves can’t be sanitized) and also exclude the sanitizer tests. However, the same is not done for the profiling runtime, which will build fine, but then all the tests fail due to linking errors. Let’s disable the profiling runtime as well (when LLVM_USE_SANITIZER is set). Differential Revision: https://reviews.llvm.org/D24657 llvm-svn: 281815
* [libFuzzer] properly reset the guards when reseting the coverage. Also try ↵Kostya Serebryany2016-09-173-1/+12
| | | | | | to fix check-fuzzer on the bot llvm-svn: 281814
* Don't create a SymbolTable in Function when the LLVMContext discards value ↵Mehdi Amini2016-09-1710-25/+29
| | | | | | | | | | | | | | names (NFC) The ValueSymbolTable is used to detect name conflict and rename instructions automatically. This is not needed when the value names are automatically discarded by the LLVMContext. No functional change intended, just saving a little bit of memory. This is a recommit of r281806 after fixing the accessor to return a pointer instead of a reference and updating all the call-sites. llvm-svn: 281813
* [MIR Parser] Fix Build!Mehdi Amini2016-09-171-1/+1
| | | | | | Last-second refactoring before push was bad idea... llvm-svn: 281812
* MIR Parser: issue an error when the Context discard value names.Mehdi Amini2016-09-171-0/+8
| | | | | | This is in line with the LLParser behavior llvm-svn: 281811
* [libFuzzer] change trace-pc to use 8-byte guardsKostya Serebryany2016-09-1710-32/+156
| | | | llvm-svn: 281810
* [sanitizer-coverage] change trace-pc to use 8-byte guardsKostya Serebryany2016-09-173-35/+37
| | | | llvm-svn: 281809
* Revert "Don't create a SymbolTable in Function when the LLVMContext discards ↵Mehdi Amini2016-09-172-6/+3
| | | | | | | | | value names (NFC)" This reverts commit r281806. It introduces undefined behavior as an API is returning a reference to the Symtab llvm-svn: 281808
* Don't create a SymbolTable in Function when the LLVMContext discards value ↵Mehdi Amini2016-09-172-3/+6
| | | | | | | | | | | names (NFC) The ValueSymbolTable is used to detect name conflict and rename instructions automatically. This is not needed when the value names are automatically discarded by the LLVMContext. No functional change intended, just saving a little bit of memory. llvm-svn: 281806
* Attempt to fix buildbot.Rui Ueyama2016-09-171-2/+5
| | | | llvm-svn: 281805
* Fix boolean logic error in BreakpointID.Zachary Turner2016-09-171-1/+1
| | | | llvm-svn: 281804
* Use named struct instead of unnamed std::pair.Rui Ueyama2016-09-172-11/+24
| | | | | | It is important to give members names for readability. llvm-svn: 281803
* Define a versatile utility function and use it instead of a single purpose one.Rui Ueyama2016-09-171-13/+12
| | | | llvm-svn: 281802
* Remove unnecessary namespace specifiers.Rui Ueyama2016-09-171-7/+7
| | | | llvm-svn: 281801
* AMDGPU: Use i64 scalar compare instructionsMatt Arsenault2016-09-177-154/+402
| | | | | | VI added eq/ne for i64, so use them. llvm-svn: 281800
* Convert many functions to use StringRefs.Zachary Turner2016-09-1725-99/+207
| | | | | | | | | | | | | Where possible, remove the const char* version. To keep the risk and impact here minimal, I've only done the simplest functions. In the process, I found a few opportunities for adding some unit tests, so I added those as well. Tested on Windows, Linux, and OSX. llvm-svn: 281799
* CodeGen: refactor the ObjC cstring literal creationSaleem Abdulrasool2016-09-161-44/+57
| | | | | | | | | This refactors the cstring literal creation as mentioned in the couple of FIXMEs littered in the various invocations to CreateMetadataVar. This centralises the definition of the literals, and will enable changing the literal creation to a single site. NFC. llvm-svn: 281798
* Fix a couple of wrong-code bugs in switch-on-constant optimization:Richard Smith2016-09-164-4/+138
| | | | | | | | | | | | * recurse through intermediate LabelStmts and AttributedStmts when checking whether a statement inside a switch declares a variable * if the end of a compound statement is reachable from the chosen case label, and the compound statement contains a variable declaration, it's not valid to just emit the contents of the compound statement -- we must emit the statement itself or we lose the scope (and thus end lifetimes at the wrong point) llvm-svn: 281797
* Add REQUIRES line.Peter Collingbourne2016-09-161-0/+2
| | | | llvm-svn: 281796
* Partially fill Info stream with proper values.Rui Ueyama2016-09-162-3/+19
| | | | llvm-svn: 281795
* Try to fix a few bots.Rafael Espindola2016-09-161-2/+2
| | | | llvm-svn: 281794
OpenPOWER on IntegriCloud