summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [OpenCL] Fix atomic Builtins check for address spaces of non-atomic pointerAnastasia Stulova2015-12-223-5/+28
| | | | | | | | | | | If there are two pointers passed to an atomic Builtin, Clang doesn't allow the second (non-atomic) one to be qualified with an address space. Remove this restriction by recording the address space of passed pointers in atomics type diagnostics. llvm-svn: 256243
* Typo. NFC.Chad Rosier2015-12-221-1/+1
| | | | llvm-svn: 256242
* Fix ARM __cxa_end_cleanup() and gc-sections.Logan Chien2015-12-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | This commit adds SHF_ALLOC and SHF_EXECINSTR section flags to `.text.__cxa_end_cleanup` section. This fixes a link error when we are using integrated-as and `ld.gold` (with `-Wl,--gc-sections` and `-Wl,--fatal-warnings`.) Detailed Explanation: 1. There might be some problem with LLVM integrated-as. It is not emitting any section flags for text sections. (This will be fixed in an independent commit.) 2. `ld.gold` will skip the external symbols in the section without SHF_ALLOC. This is the reason why `.text.__cxa_end_cleanup_impl` section is discarded even though it is referenced by `__cxa_end_cleanup()`. This commit workaround the problem by specifying the section flags explicitly. Fix http://llvm.org/PR21292 llvm-svn: 256241
* [mips] Add _GCC_HAVE_SYNC_COMPARE_AND_SWAP macros.Daniel Sanders2015-12-222-0/+20
| | | | | | | This fixes the 'pure virtual function called' failure with ThreadPool in a clang-built clang. This fixes the llvm-mips-linux builder. llvm-svn: 256240
* [OPENMP] Revert r256238 to fix the problem with tests on Linux.Alexey Bataev2015-12-228-250/+55
| | | | llvm-svn: 256239
* [OPENMP 4.5] Parsing/sema for 'depend(sink:vec)' clause in 'ordered' directive.Alexey Bataev2015-12-228-55/+250
| | | | | | OpenMP 4.5 adds 'depend(sink:vec)' in 'ordered' directive for doacross loop synchronization. Patch adds parsing and semantic analysis for this clause. llvm-svn: 256238
* [X86][AVX512] Add rcp14 and rsqrt14 intrinsicsAsaf Badouh2015-12-225-23/+226
| | | | | | Differential Revision: http://reviews.llvm.org/D15414 llvm-svn: 256237
* [ASMPrinter] Fix missing handling of DW_OP_bit_pieceKeno Fischer2015-12-222-0/+67
| | | | | | | | In r256077, I added printing for DIExpressions in DEBUG_VALUE comments, but neglected to handle DW_OP_bit_piece operands. Thanks to Mikael Holmen and Joerg Sonnenberger for spotting this. llvm-svn: 256236
* Pull out a bunch of duplicated option handling code into its ownEric Christopher2015-12-221-41/+24
| | | | | | function and use for the targets that can easily support it. llvm-svn: 256230
* [libFuzzer] add AFL-style dictionary for C++, remove the old file with tokensKostya Serebryany2015-12-222-218/+122
| | | | llvm-svn: 256229
* Use -no-canonical-prefixes to make sure binaries names are easier to match.Eric Christopher2015-12-221-1/+1
| | | | llvm-svn: 256228
* BlockGenerators: Remove unnecessary const_castTobias Grosser2015-12-221-1/+1
| | | | llvm-svn: 256227
* [MC] Don't use the architecture to govern which object file format to useDavid Majnemer2015-12-225-36/+62
| | | | | | | | | | | InitMCObjectFileInfo was trying to override the triple in awkward ways. For example, a triple specifying COFF but not Windows was forced as ELF. This makes it easy for internal invariants to get violated, such as those which triggered PR25912. This fixes PR25912. llvm-svn: 256226
* Partial fix for PR25912, see comment 13. Should fix the sanitizer bootstrap botKostya Serebryany2015-12-221-1/+1
| | | | llvm-svn: 256225
* Handle empty Subprogram list when linking metadata.Teresa Johnson2015-12-222-1/+18
| | | | | | | | Use an iterator that handles an empty subprogram list. Fixes PR25915. llvm-svn: 256224
* No need for a custom function here; just use what C providesEnrico Granata2015-12-221-29/+1
| | | | llvm-svn: 256223
* Determine callee's hotness and adjust threshold based on that. NFC.Easwaran Raman2015-12-223-7/+109
| | | | | | | | | | This uses the same criteria used in CFE's CodeGenPGO to identify hot and cold callees and uses values of inlinehint-threshold and inlinecold-threshold respectively as the thresholds for such callees. Differential Revision: http://reviews.llvm.org/D15245 llvm-svn: 256222
* [safestack] Add option for non-TLS unsafe stack pointer.Evgeniy Stepanov2015-12-222-3/+25
| | | | | | | | | | | | | This patch adds an option, -safe-stack-no-tls, for using normal storage instead of thread-local storage for the unsafe stack pointer. This can be useful when SafeStack is applied to an operating system kernel. http://reviews.llvm.org/D15673 Patch by Michael LeMay. llvm-svn: 256221
* [PGO] Fix another comdat related issue for COFFXinliang David Li2015-12-222-5/+7
| | | | | | | | | | | The linker requires that a comdat section must be associated with a another comdat section that precedes it. This means the comdat section's name needs to use the profile name var's name. Patch tested by Johan Engelen. llvm-svn: 256220
* Remove an empty folderEnrico Granata2015-12-220-0/+0
| | | | llvm-svn: 256219
* [Support] Timer: Use emplace_back() and range-based loops (NFC)Vedant Kumar2015-12-211-4/+4
| | | | llvm-svn: 256217
* [WebAssembly] Remove the -target command-line flag from the ld commandline.Dan Gohman2015-12-212-2/+3
| | | | | | | | This flag isn't needed, or permitted, with the "ld" flavor of lld. Also, add a basic ld commandline test. llvm-svn: 256216
* [Support] Timer: simplify the init() methodVedant Kumar2015-12-211-5/+1
| | | | llvm-svn: 256215
* [AVR] Added configuration file and machine function information classDylan McKay2015-12-212-0/+88
| | | | | | | This commit adds the 'AVRMachineFunctionInfo' class, which simply stores basic properties about generated machine functions. llvm-svn: 256213
* Reduce code duplicationEnrico Granata2015-12-211-64/+16
| | | | llvm-svn: 256212
* Fix line endings after r256155. NFC.Eric Christopher2015-12-211-198/+198
| | | | llvm-svn: 256211
* ScopInfo: Small improvement to schedule construction [NFC]Tobias Grosser2015-12-211-9/+9
| | | | | | | | We clarify that certain code is only executed if LSchedule is != nullptr. Previously some of these functions have been executed, but they only passed a nullptr through. This caused some confusion when reading the code. llvm-svn: 256209
* ScopInfo: Polish the implementation of mapToDimensionTobias Grosser2015-12-211-20/+32
| | | | | | | | Besides improving the documentation and the code we now assert in case the input is invalid (N < 0) and also do not any more return a nullptr in case USet is empty. This should make the code more readable. llvm-svn: 256208
* [asan] Add mincore test.Evgeniy Stepanov2015-12-211-0/+34
| | | | | | | ASan does not really do anything interesting with mincore, but this test verifies that the function still works correctly. llvm-svn: 256207
* Fix test case comment (NFC)Xinliang David Li2015-12-211-2/+2
| | | | llvm-svn: 256206
* [cfi] Fix LowerBitSets on 32-bit targets.Evgeniy Stepanov2015-12-212-1/+22
| | | | | | | This code attempts to truncate IntPtrTy to i32, which may be the same type. llvm-svn: 256205
* [clang-cl] Add support for /BreproDavid Majnemer2015-12-219-3/+61
| | | | | | | | | | | | The /Brepro flag controls whether or not the compiler should embed timestamps into the object file. Object files which do not embed timestamps are not suitable for incremental linking but are suitable for hermetic build systems and staged self-hosts of clang. A normal clang spelling of this flag has been added, -mincremental-linker-compatible. llvm-svn: 256204
* [MC, COFF] Support link /incremental conditionallyDavid Majnemer2015-12-2118-30/+71
| | | | | | | | | | | | | | | | Today, we always take into account the possibility that object files produced by MC may be consumed by an incremental linker. This results in us initialing fields which vary with time (TimeDateStamp) which harms hermetic builds (e.g. verifying a self-host went well) and produces sub-optimal code because we cannot assume anything about the relative position of functions within a section (call sites can get redirected through incremental linker thunks). Let's provide an MCTargetOption which controls this behavior so that we can disable this functionality if we know a-priori that the build will not rely on /incremental. llvm-svn: 256203
* Enhance BranchProbabilityInfo::calcUnreachableHeuristics for InvokeInstJun Bum Lim2015-12-215-4/+61
| | | | | | | | | | | | | | | This is recommit of r256028 with minor fixes in unittests: CodeGen/Mips/eh.ll CodeGen/Mips/insn-zero-size-bb.ll Original commit message: When identifying blocks post-dominated by an unreachable-terminated block in BranchProbabilityInfo, consider only the edge to the normal destination block if the terminator is InvokeInst and let calcInvokeHeuristics() decide edge weights for the InvokeInst. llvm-svn: 256202
* Resubmit r256193 with test fix: assertion failure analyzedXinliang David Li2015-12-212-2/+18
| | | | llvm-svn: 256201
* Drop remaining uses of the Base typedef idiom.Rafael Espindola2015-12-211-16/+7
| | | | llvm-svn: 256200
* Add option to assume single-loop scops with sufficient compute are profitableTobias Grosser2015-12-213-4/+135
| | | | | | | | | | | | | | If a loop has a sufficiently large amount of compute instruction in its loop body, it is unlikely that our rewrite of the loop iterators introduces large performance changes. As Polly can also apply beneficical optimizations (such as parallelization) to such loop nests, we mark them as profitable. This option is currently "disabled" by default, but can be used to run experiments. If enabled by setting it e.g. to 40 instructions, we currently see some compile-time increases on LNT without any significant run-time changes. llvm-svn: 256199
* Revert r256193: build bot failure triggeredXinliang David Li2015-12-212-19/+2
| | | | llvm-svn: 256198
* Simplify types. NFC.Rafael Espindola2015-12-212-4/+4
| | | | llvm-svn: 256197
* Remove unnecessary cast.Rafael Espindola2015-12-211-1/+1
| | | | llvm-svn: 256196
* Remove simple uses of Base::.Rafael Espindola2015-12-211-13/+15
| | | | | | | They have a tendency to get out of date and obscure where the value/type is from. llvm-svn: 256195
* [X86][SSE] Transform truncations between vectors of integers into ↵Cong Hou2015-12-214-163/+353
| | | | | | | | | | | | | | | | | | | X86ISD::PACKUS/PACKSS operations during DAG combine. This patch transforms truncation between vectors of integers into X86ISD::PACKUS/PACKSS operations during DAG combine. We don't do it in lowering phase because after type legalization, the original truncation will be turned into a BUILD_VECTOR with each element that is extracted from a vector and then truncated, and from them it is difficult to do this optimization. This greatly improves the performance of truncations on some specific types. Cost table is updated accordingly. Differential revision: http://reviews.llvm.org/D14588 llvm-svn: 256194
* [PGO] Fix profile var comdat generation problem with COFFXinliang David Li2015-12-212-2/+19
| | | | | | | | | | | When targeting COFF, it is required that a comdat section to have a global obj with the same name as the comdat (except for comdats with select kind to be associative). This fix makes sure that the comdat is keyed on the data variable for COFF. Also improved test coverage for this. llvm-svn: 256193
* [ValueTracking] Properly handle non-sized types in isAligned function.Michael Zolotukhin2015-12-212-1/+25
| | | | | | | | | | Reviewers: apilipenko, reames, sanjoy, hfinkel Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15597 llvm-svn: 256192
* Tweak myriad-toolchain test.James Y Knight2015-12-211-2/+2
| | | | | | | The test failed when run on a SPARC host, since it was finding the native gcc installation by accident. llvm-svn: 256191
* Reapply "[CodeGen] Fix assignments of inline layouts into the byref structure"Vedant Kumar2015-12-213-0/+20
| | | | | | | | | | | | | | | | | | | When using blocks, a byref structure is created to represent the closure. The "byref.layout" field of this structure is an i8*. However, some 'inline' layouts are represented as i64's, not i8*'s. Prior to r246985 we cast the i64 'inline' layout to an i8* before assigning it into the byref structure. This patch brings the cast back and adds a regression test. The original version of this patch was too invasive. This version only adds the cast to BuildByrefLayout. Differential Revision: http://reviews.llvm.org/D15674 rdar://23713871 llvm-svn: 256190
* Remove unnecessary cast.Rafael Espindola2015-12-211-1/+1
| | | | llvm-svn: 256189
* Fix PR24563 (LiveDebugVariables unconditionally propagates all DBG_VALUEs)Adrian Prantl2015-12-213-54/+138
| | | | | | | | | | | | | | | | LiveDebugVariables unconditionally propagates all DBG_VALUE down the dominator tree, which happens to work fine if there already is another DBG_VALUE or the DBG_VALUE happends to describe a single-assignment vreg but is otherwise wrong if the DBG_VALUE is coming from only one of the predecessors. In r255759 we introduced a proper data flow analysis scheduled after LiveDebugVariables that correctly propagates DBG_VALUEs across basic block boundaries. With the new pass in place, the incorrect propagation in LiveDebugVariables can be retired witout loosing any of the benefits where LiveDebugVariables happened to do the right thing. llvm-svn: 256188
* Convert the CodeGen/ARM/sched-it-debug-nodes.ll testcase from IR -> MIR.Adrian Prantl2015-12-212-88/+160
| | | | | | | NFC PR24563 llvm-svn: 256187
* Revert "[CodeGen] Fix assignments of inline layouts into the byref structure"Vedant Kumar2015-12-213-20/+1
| | | | | | This reverts commit r256185. It breaks CodeGenObjC/fragile-arc.m. llvm-svn: 256186
OpenPOWER on IntegriCloud