summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Profile] Implement select instruction instrumentation in IR PGOXinliang David Li2016-09-187-11/+241
| | | | | | Differential Revision: http://reviews.llvm.org/D23727 llvm-svn: 281858
* clang-format: [JS] Do not wrap taze annotation comments.Martin Probst2016-09-182-1/+7
| | | | | | | | | | | | | | | | | | | | | Summary: `// taze: ... from ...` comments are used help tools where a specific global symbol comes from. Before: // taze: many, different, symbols from // 'some_long_location_here' After: // taze: many, different, symbols from 'some_long_location_here' Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D24477 llvm-svn: 281857
* clang-format: [JS] ASI insertion after boolean literals.Martin Probst2016-09-182-1/+15
| | | | | | | | | | | | | | | | | | | | | Summary: Before when a semicolon was missing after a boolean literal: a = true return 1; clang-format would parse this as one line and format as: a = true return 1; It turns out that C++ does not consider `true` and `false` to be literals, we have to check for that explicitly. Reviewers: djasper Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D24574 llvm-svn: 281856
* CodeGen: mark ObjC cstring literals as unnamed_addrSaleem Abdulrasool2016-09-1819-80/+82
| | | | | | | | These are all emitted into a section with a cstring_literal attribute. The attribute permits the linker to coalesce the string contents. The address of the strings are not important. llvm-svn: 281855
* CodeGen: mark ObjC cstring literals as constantSaleem Abdulrasool2016-09-1819-80/+81
| | | | | | | | These strings are constants, mark them as such. This doesn't matter too much in practice on MachO since the constants are placed into a special section and not referred to directly. llvm-svn: 281854
* [Loop Vectorizer] Consecutive memory access - fixed and simplifiedElena Demikhovsky2016-09-184-86/+53
| | | | | | | | | Amended consecutive memory access detection in Loop Vectorizer. Load/Store were not handled properly without preceding GEP instruction. Differential Revision: https://reviews.llvm.org/D20789 llvm-svn: 281853
* [X86][SSE] Improve recognition of uitofp conversions that can be performed ↵Simon Pilgrim2016-09-186-495/+112
| | | | | | | | | | | | | | as sitofp With D24253 we can now use SelectionDAG::SignBitIsZero with vector operations. This patch uses SelectionDAG::SignBitIsZero to recognise that a zero sign bit means that we can use a sitofp instead of a uitofp (which is not directly support on pre-AVX512 hardware). While AVX512 does provide support for uitofp, the conversion to sitofp should not cause any regressions. Differential Revision: https://reviews.llvm.org/D24343 llvm-svn: 281852
* [Loop vectorizer] Simplified GEP cloning. NFC.Elena Demikhovsky2016-09-181-35/+26
| | | | | | | | | Simplified GEP cloning in vectorizeMemoryInstruction(). Added an assertion that checks consecutive GEP, which should have only one loop-variant operand. Differential Revision: https://reviews.llvm.org/D24557 llvm-svn: 281851
* GPGPU: add missing REQUIRES line to test caseTobias Grosser2016-09-181-2/+3
| | | | llvm-svn: 281850
* GPGPU: Do not run mostly sequential kernels in GPUTobias Grosser2016-09-182-0/+131
| | | | | | | | In case sequential kernels are found deeper in the loop tree than any parallel kernel, the overall scop is probably mostly sequential. Hence, run it on the CPU. llvm-svn: 281849
* GPGPU: Dynamically ensure 'sufficient compute'Tobias Grosser2016-09-182-2/+132
| | | | | | | | | | | | | Offloading to a GPU is only beneficial if there is a sufficient amount of compute that can be accelerated. Many kernels just have a very small number of dynamic compute, which means GPU acceleration is not beneficial. We compute at run-time an approximation of how many dynamic instructions will be executed and fall back to CPU code in case this number is not sufficiently large. To keep the run-time checking code simple, we over-approximate the number of instructions executed in each statement by computing the volume of the rectangular hull of its iteration space. llvm-svn: 281848
* GPGPU: Make test cases independent of register numbering [NFC]Tobias Grosser2016-09-183-13/+13
| | | | llvm-svn: 281847
* Change the order of the splitted store from high - low to low - high.Wei Mi2016-09-182-6/+6
| | | | | | | It is a trivial change which could make the testcase easier to be reused for the store splitting in CodeGenPrepare. llvm-svn: 281846
* [libFuzzer] use 'if guard' instead of 'if guard >= 0' with trace-pc; change ↵Kostya Serebryany2016-09-184-50/+50
| | | | | | the guard type to intptr_t; use separate array for 8-bit counters llvm-svn: 281845
* [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
OpenPOWER on IntegriCloud