summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [WebAssembly] Minor clang-format and selected clang-tidy cleanups. NFC.Dan Gohman2015-11-2913-64/+68
| | | | llvm-svn: 254267
* fix typos in comments; NFCSanjay Patel2015-11-291-6/+8
| | | | llvm-svn: 254266
* [SimplifyLibCalls] Don't crash if the function doesn't have a name.Davide Italiano2015-11-292-3/+11
| | | | llvm-svn: 254265
* [SimplifyLibCalls] Cross out implemented transformations.Davide Italiano2015-11-291-2/+0
| | | | llvm-svn: 254264
* [SimplifyLibCalls] Tranform log(pow(x, y)) -> y*log(x).Davide Italiano2015-11-294-5/+87
| | | | | | | | | | | | | | | | | | This one is enabled only under -ffast-math. There are cases where the difference between the value computed and the correct value is huge even for ffast-math, e.g. as Steven pointed out: x = -1, y = -4 log(pow(-1), 4) = 0 4*log(-1) = NaN I checked what GCC does and apparently they do the same optimization (which result in the dramatic difference). Future work might try to make this (slightly) less worse. Differential Revision: http://reviews.llvm.org/D14400 llvm-svn: 254263
* [X86][SSE2] Added SSE2 IR + assembly codegen builtin testsSimon Pilgrim2015-11-291-0/+1656
| | | | | | Improved tests as discussed in PR24580 llvm-svn: 254262
* SamplePGO - Do not use std::to_string in diagnostics.Diego Novillo2015-11-291-12/+17
| | | | | | | | This fixes buildbots in systems that std::to_string is not present. It also tidies the output of the diagnostic to render doubles a bit better (thanks Ben Kramer for help with string streams and format). llvm-svn: 254261
* Use a lambda instead of std::bind and std::mem_fn I introduced in r254242. NFCCraig Topper2015-11-291-2/+3
| | | | llvm-svn: 254260
* [X86][SSE] Added support for lowering to ADDSUBPS/ADDSUBPD with commuted inputsSimon Pilgrim2015-11-292-5/+80
| | | | | | We could already recognise shuffle(FSUB, FADD) -> ADDSUB, this allow us to recognise shuffle(FADD, FSUB) -> ADDSUB by commuting the shuffle mask prior to matching. llvm-svn: 254259
* Add a passing test.Rafael Espindola2015-11-292-0/+28
| | | | | | When a comdat is discarded, any globals defined in it become undefined. llvm-svn: 254258
* Don't depend on the order the IR is copied.Rafael Espindola2015-11-291-12/+13
| | | | llvm-svn: 254257
* Don't depend on the order the IR is copied.Rafael Espindola2015-11-291-14/+14
| | | | llvm-svn: 254256
* Make this test less strict.Rafael Espindola2015-11-291-5/+5
| | | | | | We just want to test what is copied, no the order. llvm-svn: 254255
* Simplify. NFC.Rafael Espindola2015-11-291-16/+12
| | | | llvm-svn: 254254
* Fixed potential crash on non-ELF64LE targets.George Rimar2015-11-291-1/+1
| | | | | | Incorrect template specialization was used (generic ELFT type was expected but platform specific was used). llvm-svn: 254253
* clang/test/CodeGen/arm-v8.1a-neon-intrinsics.c REQUIRES both arm and aarch64.NAKAMURA Takumi2015-11-291-0/+1
| | | | llvm-svn: 254252
* ARM v8.1a adds Advanced SIMD instructions for Rounding Double MultiplyAlexandros Lamprineas2015-11-292-0/+249
| | | | | | | | | | Add/Subtract. Add missing tests that accidentally were not committed in rL254250. Differential Revision: http://reviews.llvm.org/D14982 llvm-svn: 254251
* ARM v8.1a adds Advanced SIMD instructions for Rounding Double MultiplyAlexandros Lamprineas2015-11-294-0/+60
| | | | | | | | | | | | | | | | | | | | | | | | | Add/Subtract. The following instructions are added to AArch32 instruction set: - VQRDMLAH: Vector Saturating Rounding Doubling Multiply Accumulate Returning High Half - VQRDMLSH: Vector Saturating Rounding Doubling Multiply Subtract Returning High Half The following instructions are added to AArch64 instruction set: - SQRDMLAH: Signed Saturating Rounding Doubling Multiply Accumulate Returning High Half - SQRDMLSH: Signed Saturating Rounding Doubling Multiply Subtract Returning High Half This patch adds intrinsic and ACLE macro support for these instructions, as well as corresponding tests. Differential Revision: http://reviews.llvm.org/D14982 llvm-svn: 254250
* Fixup for r254228 ("Port tsan_rtl_amd64.S to OS X to add support for ↵Kuba Brecka2015-11-291-6/+5
| | | | | | setjmp/longjmp") to fix the build of unit tests. We need to add the ASM file into RTTsan_dynamic as well. llvm-svn: 254249
* AVX512:Implemented encoding for the vmovq.s instruction.Igor Breger2015-11-292-0/+21
| | | | | | Differential Revision: http://reviews.llvm.org/D14810 llvm-svn: 254248
* [X86] Remove temporary variables from intrinsic macros. NFCCraig Topper2015-11-291-28/+18
| | | | llvm-svn: 254247
* Remove an intermediate lambda. NFCCraig Topper2015-11-291-3/+2
| | | | llvm-svn: 254246
* sync up with master fileXinliang David Li2015-11-291-10/+22
| | | | llvm-svn: 254245
* Minor code cleanupsXinliang David Li2015-11-292-11/+23
| | | | | | | | - Add const keyword - fix code comments - move forward decl to the common file llvm-svn: 254244
* Remove unnecessary intermediate lambda. NFCCraig Topper2015-11-292-5/+2
| | | | llvm-svn: 254243
* [SelectionDAG] Use std::any_of instead of a manually coded loop. NFCCraig Topper2015-11-291-8/+4
| | | | llvm-svn: 254242
* Correctly handle llvm.global_ctors merging.Rafael Espindola2015-11-293-42/+61
| | | | | | | We were not handling the case where an entry must be dropped and the destination module has no llvm.global_ctors. llvm-svn: 254241
* Fix a crash when writing merged bitcode.Rafael Espindola2015-11-292-5/+17
| | | | | | | Playing with mutateType in here was making getValueType and getType incompatible. llvm-svn: 254240
* [SimplifyLibCalls] Use any_of(). Suggested by David Blaikie!Davide Italiano2015-11-281-4/+3
| | | | llvm-svn: 254239
* [SimplifyLibCalls] Fix inverted condition that lead to an uninitialized ↵Benjamin Kramer2015-11-281-2/+2
| | | | | | | | memory read below. Found by msan! llvm-svn: 254238
* [X86][AVX] Regenerate ADDSUB testsSimon Pilgrim2015-11-282-132/+309
| | | | | | Tidied up triple and regenerate tests using update_llc_test_checks.py llvm-svn: 254237
* Sync up template file with masterXinliang David Li2015-11-281-0/+461
| | | | llvm-svn: 254236
* [PGO] Move value profile format related structures and APIs to common fileXinliang David Li2015-11-283-368/+472
| | | | | | | | | | This is the last step to enable profile runtime to share the same value prof data format and reader/writer code with llvm host tools. The VP related data structures are moved to a section in InstrProfData.inc enabled with macro INSTR_PROF_VALUE_PROF_DATA, and common API implementations are enabled with INSTR_PROF_COMMON_API_IMPL. There should be no functional change. llvm-svn: 254235
* Revert "[ARM] Generate ABI_optimization_goals build attribute, as described ↵Renato Golin2015-11-288-154/+12
| | | | | | | | | in the ARM ARM." This reverts commit r254201 and r254202, as it broke test-suite, self-hosting and sanitizer tests on ARM buildbots. llvm-svn: 254234
* [X86][FMA] Added 512-bit tests to match 128/256-bit tests coverageSimon Pilgrim2015-11-281-0/+487
| | | | | | As discussed on D14909 llvm-svn: 254233
* [X86][FMA] More thorough FMA testsSimon Pilgrim2015-11-282-186/+510
| | | | | | | | | | | | Added FMADD/FMSUB/FNMADD/FNMSUB tests for all types Added load folding tests for 512-bit vectors NOTE: Many of the AVX512 FMA instructions don't yet commute/fold correctly As discussed on D14909 llvm-svn: 254232
* [X86][AVX2] Tidied up PBROADCAST testsSimon Pilgrim2015-11-281-86/+154
| | | | | | Tidied up triple and regenerate tests using update_llc_test_checks.py llvm-svn: 254231
* llvm/test/CodeGen/SystemZ/alloca-04.ll REQUIRES asserts due to -debug-pass.NAKAMURA Takumi2015-11-281-1/+1
| | | | llvm-svn: 254230
* [tsan] Add release+acquire semantics for serial dispatch queuesKuba Brecka2015-11-282-0/+73
| | | | | | | | Serial queues need extra happens-before between individual tasks executed in the same queue. This patch adds `Acquire(queue)` before the executed task and `Release(queue)` just after it (for serial queues only). Added a test case. Differential Revision: http://reviews.llvm.org/D15011 llvm-svn: 254229
* [tsan] Port tsan_rtl_amd64.S to OS X to add support for setjmp/longjmpKuba Brecka2015-11-284-35/+96
| | | | | | | | | | | | | | This patch ports the assembly file tsan_rtl_amd64.S to OS X, where we need several changes: * Some assembler directives are not available on OS X (.hidden, .type, .size) * Symbol names need to start with an underscore (added a ASM_TSAN_SYMBOL macro for that). * To make the interceptors work, we ween to name the function "_wrap_setjmp" (added ASM_TSAN_SYMBOL_INTERCEPTOR for that). * Calling the original setjmp is done with a simple "jmp _setjmp". * __sigsetjmp doesn't exist on OS X. Differential Revision: http://reviews.llvm.org/D14947 llvm-svn: 254228
* [Stack realignment] Handling of aligned allocas.Jonas Paulsson2015-11-286-15/+156
| | | | | | | | | | | | | | | | | | | | This patch implements dynamic realignment of stack objects for targets with a non-realigned stack pointer. Behaviour in FunctionLoweringInfo is changed so that for a target that has StackRealignable set to false, over-aligned static allocas are considered to be variable-sized objects and are handled with DYNAMIC_STACKALLOC nodes. It would be good to group aligned allocas into a single big alloca as an optimization, but this is yet todo. SystemZ benefits from this, due to its stack frame layout. New tests SystemZ/alloca-03.ll for aligned allocas, and SystemZ/alloca-04.ll for "no-realign-stack" attribute on functions. Review and help from Ulrich Weigand and Hal Finkel. llvm-svn: 254227
* [tsan] Add a testcase for a race on a Obj-C instance variableKuba Brecka2015-11-281-0/+55
| | | | | | | | Let's add a testcase for a race on a Obj-C instance variable. Differential Revision: http://reviews.llvm.org/D14988 llvm-svn: 254226
* [tsan] Mark a few more tests with "UNSUPPORTED: darwin"Kuba Brecka2015-11-282-0/+6
| | | | | | | | There's a few more lit tests that require features not available on OS X (MAP_32BIT, pthread_setname_np), let's mark them with "UNSUPPORTED: darwin". Differential Revision: http://reviews.llvm.org/D14923 llvm-svn: 254225
* [tsan] Change mutexset6.cc to use a mutex instead of spinlockKuba Brecka2015-11-281-5/+5
| | | | | | | | Pthread spinlocks are not available on OS X and this test doesn't really require a spinlock. Differential Revision: http://reviews.llvm.org/D14949 llvm-svn: 254224
* [tsan] Fix an assertion failure in FindThreadByUidLocked with recycled threadsKuba Brecka2015-11-282-8/+62
| | | | | | | | | | | | When a race on file descriptors is detected, `FindThreadByUidLocked()` is called to retrieve ThreadContext with a specific unique_id. However, this ThreadContext might not exist in the thread registry anymore (it may have been recycled), in which case `FindThreadByUidLocked` will cause an assertion failure in `GetThreadLocked`. Adding a test case that reproduces this, producing: FATAL: ThreadSanitizer CHECK failed: sanitizer_common/sanitizer_thread_registry.h:92 "((tid)) < ((n_contexts_))" (0x34, 0x34) This patch fixes this by replacing the loop with `FindThreadContextLocked`. Differential Revision: http://reviews.llvm.org/D14984 llvm-svn: 254223
* Use range-based for loops. NFCCraig Topper2015-11-281-37/+20
| | | | llvm-svn: 254222
* [TableGen] Use SmallString instead of std::string to build up a string to ↵Craig Topper2015-11-281-2/+3
| | | | | | avoid heap allocations. NFC llvm-svn: 254221
* [PGO] Add return code for vp rt record init routine to indicate error conditionXinliang David Li2015-11-282-7/+13
| | | | llvm-svn: 254220
* [PGO] Allow value profile writer interface to allocated target buffer Xinliang David Li2015-11-283-13/+18
| | | | | | | | | Raw profile writer needs to write all data of one kind in one continuous block, so the buffer needs to be pre-allocated and passed to the writer method in pieces for function profile data. The change adds the support for raw value data writing. llvm-svn: 254219
* Function name cleanup (NFC)Xinliang David Li2015-11-282-6/+6
| | | | llvm-svn: 254218
OpenPOWER on IntegriCloud