summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Ensure the lit.site.cfg and Unit/lit.site.cfg make targets do not useDimitry Andric2016-01-201-6/+6
| | | | | | | the same temporary file, otherwise there is a race condition when using parallel make jobs. llvm-svn: 258327
* [LibCallSimplifier] don't get fooled by a fake sqrt()Sanjay Patel2016-01-202-4/+23
| | | | | | | | | | | | | | | | | | | | | | The test case will crash without this patch because the subsequent call to hasUnsafeAlgebra() assumes that the call instruction is an FPMathOperator (ie, returns an FP type). This part of the function signature check was omitted for the sqrt() case, but seems to be in place for all other transforms. Before: http://reviews.llvm.org/rL257400 ...we would have needlessly continued execution in optimizeSqrt(), but the bug was harmless because we'd eventually fail some other check and return without damage. This should fix: https://llvm.org/bugs/show_bug.cgi?id=26211 Differential Revision: http://reviews.llvm.org/D16198 llvm-svn: 258325
* [Orc] Fix a use-after-move bug in the Orc C-bindings stack.Lang Hames2016-01-201-3/+3
| | | | llvm-svn: 258324
* 80-cols; NFCSanjay Patel2016-01-201-2/+2
| | | | llvm-svn: 258323
* Add AST matcher support for FunctionDecls with the hasBody matcher.Aaron Ballman2016-01-205-13/+43
| | | | | | Patch by Aleksei Sidorin. llvm-svn: 258322
* Add AST matcher for paren expressions.Aaron Ballman2016-01-205-0/+34
| | | | | | Patch by Adrian Zgorzałek. llvm-svn: 258321
* Write AArch64 big endian data fixup entries as BE.Keith Walker2016-01-202-35/+70
| | | | | | | | | | | | | | There was support for writing the AArch64 big endian data fixup entries in the .eh_frame section in BE. This is changed to write all such fixup entries in BE with no restriction on the section. This is similar to the existing support for fixup entries for ARM. A test is added to check the length field in the .debug_line section as this is an example of where such a fixup occurs. Differential Revision: http://reviews.llvm.org/D16064 llvm-svn: 258320
* Correctly initialize SIAnnotateControlFlowTom Stellard2016-01-203-2/+11
| | | | | | | | | | Reviewers: arsenm Subscribers: arsenm, llvm-commits Differential Revision: http://reviews.llvm.org/D16304 llvm-svn: 258319
* Fix the error in non-asserts Release mode build. NFCSumanth Gundapaneni2016-01-201-0/+2
| | | | llvm-svn: 258318
* Silencing several -Wcast-qual warnings; NFC.Aaron Ballman2016-01-201-2/+4
| | | | llvm-svn: 258317
* [AVX512] Adding VPERMB Intrinsics Michael Zuckerman2016-01-204-6/+72
| | | | | | Differential Revision: http://reviews.llvm.org/D16296 llvm-svn: 258316
* Mark arm/aarch64 specific xfails with expectedFailureLinux decoratorOmair Javaid2016-01-204-5/+8
| | | | | | | | | | | | | This patch marks some known failures and puts on expectedFailureLinux decorator to have testsuite xfail them. Affected tests are: test/functionalities/watchpoint/step_over_watchpoint.py test/functionalities/watchpoint/watchpoint_set_command/TestWatchLocationWithWatchSet.py test/tools/lldb-server/TestGdbRemoteSingleStep.py test/tools/lldb-server/TestGdbRemote_vCont.py llvm-svn: 258315
* Revert "[coverage] Add a test case to cover coverage testing with comdat"Renato Golin2016-01-204-58/+0
| | | | | | This reverts commit r258255 and r258274, as it was breaking the AArch64 bot. llvm-svn: 258314
* [libcxxabi] Teach cxa_demangle about Hexagon's long double sizeBen Craig2016-01-201-1/+1
| | | | | | | cxa_demangle's default size for a long double is 10 bytes. Hexagon only has an 8 byte long double though. llvm-svn: 258313
* Fixing bug in rL258132: [X86] Adding support for missing variations of X86 ↵Marina Yatsina2016-01-201-2/+6
| | | | | | | | | | string related instructions There was a bug in my rL258132 because there's an overloading of the "movsd" and "cmpsd" instructions, e.g. movsd can be either "Move Data from String to String" (the case I wanted to handle) or "Move or Merge Scalar Double-Precision Floating-Point Value" (the case that causes the asserts). Added code for escaping the unfamiliar scenarios and falling back to old behviour. Also changed the asserts to llvm_unreachable. llvm-svn: 258312
* [libcxxabi] Make test tolerant of uncommon floating literal demanglingsBen Craig2016-01-201-5/+62
| | | | | | | | | | | | | | | libcxxabi uses the C99 library's %a format specifier to turn a floating point value into a hexadecimal string representation. The %a format specifier is rather loosely defined in the C spec though, and some C libraries emit a different (but valid) string for a given floating point value. In particular, the C spec only requires that there is a single, non-zero hexadecimal digit on the left of the decimal point. Given that constraint, there are typically four different valid representations of a floating point number. I have updated the test to accept any of the valid representations for demangled floating point literals. llvm-svn: 258311
* Proper handling of diamond-like cases in if-conversionKrzysztof Parzyszek2016-01-202-15/+95
| | | | | | | | | | | If converter was somewhat careless about "diamond" cases, where there was no join block, or in other words, where the true/false blocks did not have analyzable branches. In such cases, it was possible for it to remove (needed) branches, resulting in a loss of entire basic blocks. Differential Revision: http://reviews.llvm.org/D16156 llvm-svn: 258310
* AVX512: Store (MOVNTPD, MOVNTPS, MOVNTDQ) using non-temporal hint intrinsic ↵Igor Breger2016-01-205-38/+80
| | | | | | | | implementation. Differential Revision: http://reviews.llvm.org/D16350 llvm-svn: 258309
* [AArch64] Fix two bugs in the .inst directiveOliver Stannard2016-01-202-3/+26
| | | | | | | | | | | | | | The AArch64 .inst directive was implemented using EmitIntValue, which resulted in both $x and $d (code and data) mapping symbols being emitted at the same address. This fixes it to only emit the $x mapping symbol. EmitIntValue also emits the value in big-endian order when targeting big-endian systems, but instructions are always emitted in little-endian order for AArch64. Differential Revision: http://reviews.llvm.org/D16349 llvm-svn: 258308
* [OPENMP 4.0] Fix for codegen of 'cancel' directive within 'sections' directive.Alexey Bataev2016-01-203-5/+8
| | | | | | Allow to emit code for 'cancel' directive within 'sections' directive with single sub-section. llvm-svn: 258307
* Fix clang warning in RenderScriptRuntimePavel Labath2016-01-201-1/+1
| | | | | | | | std::array should have "the same semantics as a struct holding a C-style array T[N] as its only non-static data member", so the initialization should have one more level of braces. Hopefully, no compiler will object to that. llvm-svn: 258306
* Enable TestInlineStepping on linux i386Pavel Labath2016-01-201-2/+0
| | | | | | Test has been passing at least the last 200 buildbot runs. llvm-svn: 258305
* Enable TestConcurrentEvents on i386 linuxPavel Labath2016-01-201-1/+0
| | | | | | The test has been passing reliably the last 100 runs of the build bot. llvm-svn: 258304
* [RenderScript] New command for viewing coordinate of current kernel invocationEwan Crawford2016-01-202-35/+138
| | | | | | | Patch adds command 'language renderscript kernel coordinate' for printing the kernel index in (x,y,z) format. This is done by walking the call stack and looking for a function with suffix '.expand', as well as the frame variables containing the coordinate data. llvm-svn: 258303
* [AVR] Defnined calling conventions. NFC.Dylan McKay2016-01-201-0/+10
| | | | llvm-svn: 258300
* [OPENMP 4.5] Allow to use non-static data members in non-static member ↵Alexey Bataev2016-01-2022-178/+1229
| | | | | | | | functions in 'private' clause. OpenMP 4.5 allows to use non-static members of current class in non-static member functions in 'private' clause. Patch adds initial support for privatizing data members. llvm-svn: 258299
* [LTO] Fix error reporting when a file passed to libLTO is invalid or ↵Petr Pavlu2016-01-203-6/+9
| | | | | | | | | | | | | | | | | | non-existent This addresses PR26060 where function lto_module_create() could return nullptr but lto_get_error_message() returned an empty string. The error() call after LTOModule::createFromFile() in llvm-lto is then removed because any error from this function should go through the diagnostic handler in llvm-lto which will exit the program. The error() call was added because this previously did not happen when the file was non-existent. This is fixed by the patch. (The situation that llvm-lto reports an error when the input file does not exist is tested by llvm/tools/llvm-lto/error.ll). Differential Revision: http://reviews.llvm.org/D16106 llvm-svn: 258298
* [Verifier] Fix performance regression for LTO buildsIvan Krasin2016-01-201-6/+7
| | | | | | | | | | | | | | | | | | Summary: Fix a significant performance regression by introducing GlobalValueVisited field and reusing the map. This is a follow up to r257823 that slowed down linking Chrome with LTO by 2.5x. If you revert this commit, please, also revert r257823. BUG=https://llvm.org/bugs/show_bug.cgi?id=26214 Reviewers: pcc, loladiro, joker.eph Subscribers: krasin1, joker.eph, loladiro, pcc Differential Revision: http://reviews.llvm.org/D16338 llvm-svn: 258297
* [SelectionDAG] Fold more offsets into GlobalAddressesDan Gohman2016-01-206-84/+809
| | | | | | | | | | | | | | | | | | SelectionDAG previously missed opportunities to fold constants into GlobalAddresses in several areas. For example, given `(add (add GA, c1), y)`, it would often reassociate to `(add (add GA, y), c1)`, missing the opportunity to create `(add GA+c, y)`. This isn't often visible on targets such as X86 which effectively reassociate adds in their complex address-mode folding logic, however it is currently visible on WebAssembly since it currently has very simple address mode folding code that doesn't reassociate anything. This patch fixes this by making SelectionDAG fold offsets into GlobalAddresses at the same times that it folds constants together, so that it doesn't miss any opportunities to perform such folding. Differential Revision: http://reviews.llvm.org/D16090 llvm-svn: 258296
* [WebAssembly] Tighten up some regexes in some tests.Dan Gohman2016-01-204-80/+80
| | | | llvm-svn: 258295
* [WebAssembly] Minor code cleanups. NFC.Dan Gohman2016-01-206-12/+13
| | | | llvm-svn: 258294
* [WebAssembly] Remove the Relooper code, as it is not currently being used.Dan Gohman2016-01-204-1173/+0
| | | | llvm-svn: 258293
* Use TEST_STD_VER instead of __has_feature to detect noexcept. This fixes the ↵Eric Fiselier2016-01-201-2/+3
| | | | | | test with GCC. llvm-svn: 258292
* More string fixes for noexcept cases. Apparently I didn't get them all in ↵Marshall Clow2016-01-205-1/+9
| | | | | | r258281. llvm-svn: 258291
* Fix infinite loop when ::new or ::delete are found in member initializer ↵Alexey Bataev2016-01-202-12/+56
| | | | | | | | | list, by Denis Zobnin Fix for an infinite loop on parsing ::new or ::delete in member initializer list, found by fuzzing PR23057, comment #33. Skip the rest of the member initializers if the previous initializer was invalid. Differential Revision: http://reviews.llvm.org/D16216 llvm-svn: 258290
* Some 32-bit arm corefiles on darwin may have their general purposeJason Molenda2016-01-203-5/+9
| | | | | | | | | | register set indicated by ARM_THREAD_STATE32 (value 9) instead of the old ARM_THREAD_STATE (value 1); this patch changes lldb to accept either register set flavor code. <rdar://problem/24246257> llvm-svn: 258289
* [Orc] 'this' qualify more lambda-captured members.Lang Hames2016-01-201-4/+4
| | | | | | More workaround attempts for GCC ICEs. llvm-svn: 258288
* Mark some test XFAIL for GCC 4.9 due to missing is_trivial* traitsEric Fiselier2016-01-2012-3/+39
| | | | llvm-svn: 258287
* [Orc] More qualifications of lambda-captured member variables to fix GCC ICEs.Lang Hames2016-01-201-3/+3
| | | | llvm-svn: 258286
* [WebAssembly] Don't stackify stores across instructions with side effects.Dan Gohman2016-01-203-13/+37
| | | | llvm-svn: 258285
* Mark some tests as XFAIL with GCC due to compiler bugsEric Fiselier2016-01-203-0/+12
| | | | llvm-svn: 258284
* tools/llvm-config: improve shared library supportAndrew Wilkins2016-01-206-66/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This is a re-commit of r257003, which was reverted, along with the fixes from http://reviews.llvm.org/D15986. r252532 added support for reporting the monolithic library when LLVM_BUILD_LLVM_DYLIB is used. This would only be done if the individual components were not found, and the dynamic library is found. This diff extends this as follows: - If LLVM_LINK_LLVM_DYLIB is set, then prefer the shared library, even if all component libraries exist. - Two flags, --link-shared and --link-static are introduced to provide explicit guidance. If --link-shared is passed and the shared library does not exist, an error results. Additionally, changed the expected shared library names from (e.g.) LLVM-3.8.0 to LLVM-3.8. The former exists only in an installation (and then only in CMake builds I think?), and not in the build tree; this breaks usage of llvm-config during builds, e.g. by llvm-go. Reviewers: DiamondLovesYou, beanz Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D15986 llvm-svn: 258283
* Got the test backwards in r258279. Fixed that and de-tabbedMarshall Clow2016-01-201-166/+166
| | | | llvm-svn: 258281
* Fix up the tests I added for string exceptions to be skipped when exceptions ↵Marshall Clow2016-01-205-0/+29
| | | | | | are disabled llvm-svn: 258279
* [Orc] Qualify captured variable to work around GCC ICE.Lang Hames2016-01-201-1/+1
| | | | llvm-svn: 258278
* Fix link flags order in RUN command.Eric Fiselier2016-01-201-1/+1
| | | | llvm-svn: 258277
* Fix a bug in testXinliang David Li2016-01-201-2/+2
| | | | llvm-svn: 258276
* [test] Add a short explanation to instrprof-comdat.hVedant Kumar2016-01-201-0/+4
| | | | llvm-svn: 258274
* [Inliner/WinEH] Honor implicit nounwindsJoseph Tremoulet2016-01-202-17/+769
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Funclet EH tables require that a given funclet have only one unwind destination for exceptional exits. The verifier will therefore reject e.g. two cleanuprets with different unwind dests for the same cleanup, or two invokes exiting the same funclet but to different unwind dests. Because catchswitch has no 'nounwind' variant, and because IR producers are not *required* to annotate calls which will not unwind as 'nounwind', it is legal to nest a call or an "unwind to caller" catchswitch within a funclet pad that has an unwind destination other than caller; it is undefined behavior for such a call or catchswitch to unwind. Normally when inlining an invoke, calls in the inlined sequence are rewritten to invokes that unwind to the callsite invoke's unwind destination, and "unwind to caller" catchswitches in the inlined sequence are rewritten to unwind to the callsite invoke's unwind destination. However, if such a call or "unwind to caller" catchswitch is located in a callee funclet that has another exceptional exit with an unwind destination within the callee, applying the normal transformation would give that callee funclet multiple unwind destinations for its exceptional exits. There would be no way for EH table generation to determine which is the "true" exit, and the verifier would reject the function accordingly. Add logic to the inliner to detect these cases and leave such calls and "unwind to caller" catchswitches as calls and "unwind to caller" catchswitches in the inlined sequence. This fixes PR26147. Reviewers: rnk, andrew.w.kaylor, majnemer Subscribers: alexcrichton, llvm-commits Differential Revision: http://reviews.llvm.org/D16319 llvm-svn: 258273
* Module Debugging: Fine-tune the condition that determines whether a typeAdrian Prantl2016-01-204-2/+20
| | | | | | | | | | | | | can be found in a module. There are externally visible anonymous types that can be found: typedef struct { } s; // I can be found via the typedef. There are anonymous internal types that can be found: namespace { struct s {}; } // I can be found by name. rdar://problem/24199640 llvm-svn: 258272
OpenPOWER on IntegriCloud