summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Fix temporary lifetime extension from an initializer using braced "functional"Richard Smith2015-01-102-7/+14
| | | | | | cast notation T{...} when T is a reference type. llvm-svn: 225571
* Don't emit implicit template instantiations eagerly (PR21718)Hans Wennborg2015-01-104-17/+69
| | | | | | | | | | | | | | Their linkage can change if they are later explicitly instantiated. We would previously emit such functions eagerly (as opposed to lazily on first use) if they have a 'dllexport' or 'used' attribute, and fail an assert when hitting the explicit instantiation. This is achieved by replacing the old CodeGenModule::MayDeferGeneration() method with two new ones: MustBeEmitted() and MayBeEmittedEagerly(). Differential Revision: http://reviews.llvm.org/D6674 llvm-svn: 225570
* Fix undefined behavior (shift of negative value) in ↵Alexey Samsonov2015-01-101-2/+2
| | | | | | | | | | | | | | RuntimeDyldMachOAArch64::encodeAddend. Test Plan: regression test suite with/without UBSan. Reviewers: lhames, ributzka Subscribers: aemerson, llvm-commits Differential Revision: http://reviews.llvm.org/D6908 llvm-svn: 225568
* Respect the fact that the result object claims it doesn't want to be ↵Greg Clayton2015-01-101-12/+17
| | | | | | | | | | interactive by not forwarding STDIN to the python invocation when it isn't desired. This fixes an issue of running "script" commands via SBDebugger::HandleCommand(...) and SBCommandInterpreter::HandleCommand(...) deadlocking Xcode. <rdar://problem/18075038> llvm-svn: 225567
* [PowerPC] Readjust the loop unrolling thresholdHal Finkel2015-01-103-6/+54
| | | | | | | | Now that the way that the partial unrolling threshold for small loops is used to compute the unrolling factor as been corrected, a slightly smaller threshold is preferable. This is expected; other targets may need to re-tune as well. llvm-svn: 225566
* [LoopUnroll] Fix the partial unrolling threshold for small loop sizesHal Finkel2015-01-103-7/+31
| | | | | | | | | | | | | When we compute the size of a loop, we include the branch on the backedge and the comparison feeding the conditional branch. Under normal circumstances, these don't get replicated with the rest of the loop body when we unroll. This led to the somewhat surprising behavior that really small loops would not get unrolled enough -- they could be unrolled more and the resulting loop would be below the threshold, because we were assuming they'd take (LoopSize * UnrollingFactor) instructions after unrolling, instead of (((LoopSize-2) * UnrollingFactor)+2) instructions. This fixes that computation. llvm-svn: 225565
* [TestInferiorAssert] Differentiate DWARF and DSYM tests with suffixes.Siva Chandra2015-01-101-4/+4
| | | | | | | | | | | | Reviewers: vharron, clayborg Reviewed By: clayborg Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D6907 llvm-svn: 225564
* Support Newlib as libc++'s C library [cstdio part, part 2]Jonathan Roelofs2015-01-101-0/+18
| | | | | | | | Wrappers for clearerr, feof, ferror (which newlib implements as macros). http://reviews.llvm.org/D5420 llvm-svn: 225563
* Use the DiagnosticHandler to print diagnostics when reading bitcode.Rafael Espindola2015-01-1011-368/+428
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bitcode reading interface used std::error_code to report an error to the callers and it is the callers job to print diagnostics. This is not ideal for error handling or diagnostic reporting: * For error handling, all that the callers care about is 3 possibilities: * It worked * The bitcode file is corrupted/invalid. * The file is not bitcode at all. * For diagnostic, it is user friendly to include far more information about the invalid case so the user can find out what is wrong with the bitcode file. This comes up, for example, when a developer introduces a bug while extending the format. The compromise we had was to have a lot of error codes. With this patch we use the DiagnosticHandler to communicate with the human and std::error_code to communicate with the caller. This allows us to have far fewer error codes and adds the infrastructure to print better diagnostics. This is so because the diagnostics are printed when he issue is found. The code that detected the problem in alive in the stack and can pass down as much context as needed. As an example the patch updates test/Bitcode/invalid.ll. Using a DiagnosticHandler also moves the fatal/non-fatal error decision to the caller. A simple one like llvm-dis can just use fatal errors. The gold plugin needs a bit more complex treatment because of being passed non-bitcode files. An hypothetical interactive tool would make all bitcode errors non-fatal. llvm-svn: 225562
* Remove unnecessary/incorrect XFAIL after the revert of 225000David Blaikie2015-01-091-2/+0
| | | | llvm-svn: 225561
* Revert "Reapply debug info changes now that more precise column information ↵David Blaikie2015-01-092-2/+2
| | | | | | | | | | is available." While the clang patch is reverted pending investigation/fixes. This reverts commit r225001. llvm-svn: 225560
* clang-format: [Java] Support formatting qualified annotations.Nico Weber2015-01-093-23/+45
| | | | llvm-svn: 225559
* Fix UBSan error reports in ValueMapCallbackVH and AssertingVH<T> ↵Alexey Samsonov2015-01-092-32/+27
| | | | | | | | | | | | | | | | | | empty/tombstone keys generation. Summary: One more attempt to fix UBSan reports: make sure DenseMapInfo::getEmptyKey() and DenseMapInfo::getTombstoneKey() doesn't do any upcasts/downcasts to/from Value*. Test Plan: check-llvm test suite with/without UBSan bootstrap Reviewers: chandlerc, dexonsmith Subscribers: llvm-commits, majnemer Differential Revision: http://reviews.llvm.org/D6903 llvm-svn: 225558
* Disable Go bindings test under UBSan.Alexey Samsonov2015-01-091-1/+1
| | | | llvm-svn: 225557
* Remove AsanInterceptsSignal in favor of (equivalent) IsDeadlySignal.Alexey Samsonov2015-01-094-16/+3
| | | | llvm-svn: 225556
* Revert "DebugInfo: Generalize debug info location handling" and related commitsDavid Blaikie2015-01-0919-156/+220
| | | | | | | | | | | | This reverts commit r225000, r225021, r225083, r225086, r225090. The root change (r225000) still has several issues where it's caused calls to be emitted without debug locations. This causes assertion failures if/when those calls are inlined. I'll work up some test cases and fixes before recommitting this. llvm-svn: 225555
* Fix the JIT event listeners and replace the associated tests.Andrew Kaylor2015-01-097-604/+290
| | | | | | | | | | The changes to EventListenerCommon.h were contributed by Arch Robison. This fixes bug 22095. http://reviews.llvm.org/D6905 llvm-svn: 225554
* Update comment.Michael Zolotukhin2015-01-091-2/+2
| | | | llvm-svn: 225553
* SimplifyCFG: check uses of constant-foldable instrs in switch destinations ↵Hans Wennborg2015-01-092-6/+55
| | | | | | | | | | | (PR20210) The previous code assumed that such instructions could not have any uses outside CaseDest, with the motivation that the instruction could not dominate CommonDest because CommonDest has phi nodes in it. That simply isn't true; e.g., CommonDest could have an edge back to itself. llvm-svn: 225552
* [X86][SSE] Avoid vector byte shuffles with zero by using pshufb to create zerosSimon Pilgrim2015-01-092-124/+106
| | | | | | | | pshufb can shuffle in zero bytes as well as bytes from a source vector - we can use this to avoid having to shuffle 2 vectors and ORing the result when the used inputs from a vector are all zeroable. Differential Revision: http://reviews.llvm.org/D6878 llvm-svn: 225551
* Fix an ASAN failure introduced with r225537 (adding the -universal-headers ↵Kevin Enderby2015-01-091-5/+5
| | | | | | | | to llvm-obdump). And a fly by fix to some formatting issues with the same commit. llvm-svn: 225550
* Modify dotest.py to be able to run without an lldb build.Stephane Sezer2015-01-092-25/+34
| | | | | | | | | | | | Summary: This will ease llgs development a bit by not requiring an lldb/lldb.py build to launch the tests. Also, we can now use LLDB_DEBUGSERVER_PATH to point to a debug server to use to run the tests. I used that to point to a ds2 build and run llgs tests against ds2. Reviewers: clayborg, tfiala, vharron Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D6554 llvm-svn: 225549
* Fix issues with LLDB's interpreter and MS ABI guard variables.Zachary Turner2015-01-091-15/+7
| | | | | | | | | | | MS ABI guard variables end with @4IA, so this patch teaches the interpreter about that. Additionally, there was an issue with TurnGuardLoadIntoZero which was causing some guard uses of a variable to be missed. This fixes that by calling Instruction::replaceAllUsesWith() instead of trying to replicate that function. llvm-svn: 225547
* [sanitizer] use the right memory orderKostya Serebryany2015-01-091-1/+1
| | | | llvm-svn: 225546
* Add a testcase of llvm-lto error handling.Rafael Espindola2015-01-091-0/+4
| | | | llvm-svn: 225545
* Remove duplicating code. NFC.Michael Zolotukhin2015-01-091-2/+2
| | | | | | The removed condition is checked in the previous loop. llvm-svn: 225542
* Walter Brown sent a list of tests which needed 'additional includes' to ↵Marshall Clow2015-01-0969-0/+70
| | | | | | match what was in the standard. Added these includes to the tests. No changes to the library or test results. llvm-svn: 225541
* Change int32_t to uint32_t to fix warnings.Zachary Turner2015-01-091-1/+1
| | | | | | | | | | Variable was being declared as signed, but treated as unsigned at every point of use. Patch by Dan Sinclair Differential Revision: http://reviews.llvm.org/D6897 llvm-svn: 225540
* Change auto to size_t to fix warning.Zachary Turner2015-01-091-1/+1
| | | | | | | Patch by Dan Sinclair Differential Revision: http://reviews.llvm.org/D6899 llvm-svn: 225539
* Make the list of synthetic children thread safeEnrico Granata2015-01-093-15/+16
| | | | | | | | | | | | | I have been seeing a few crashes where LLDB tries to acquire a cached synthetic child by index, and crashes in the ClusterManager obtaining a shared_ptr for that ValueObject That kind of crash most often means that I am holding on to a raw pointer to a ValueObject that was let go from the cluster The main way that could happen is that the synthetic provider is being updated at the same time that some child is being accessed from the previous provider state This fixes the problem by making the children be stored in a thread-safe map Fixes rdar://18627964 llvm-svn: 225538
* Add the option, -universal-headers, used with -macho to print the Mach-O ↵Kevin Enderby2015-01-095-13/+230
| | | | | | universal headers to llvm-objdump. llvm-svn: 225537
* Re-reapply r221924: "[GVN] Perform Scalar PRE on gep indices that feed loads ↵Tim Northover2015-01-093-168/+231
| | | | | | | | | | | | | | | before doing Load PRE" It's not really expected to stick around, last time it provoked a weird LTO build failure that I can't reproduce now, and the bot logs are long gone. I'll re-revert it if the failures recur. Original description: Perform Scalar PRE on gep indices that feed loads before doing Load PRE. llvm-svn: 225536
* Fixed an issue where you couldn't delete a user defined regex, python, or ↵Greg Clayton2015-01-097-28/+182
| | | | | | | | | | | multi-word command by adding a new "command delete" command. This new command will delete user defined regular commands, but not aliases. We still have "command unalias" to remove aliases as they are currently in different buckets. Appropriate error messages are displayed to inform the user when "command unalias" is used on removable user defined commands that points users to the "command delete" command. Added a test to verify we can remove user defined commands and also verify that "command unalias" fails when used on a user defined command. <rdar://problem/18248300> llvm-svn: 225535
* Recommit r224935 with a fix for the ObjC++/AArch64 bug that that revisionLang Hames2015-01-0915-104/+83
| | | | | | | | | | introduced. A test case for the bug was already committed in r225385. Patch by Rafael Espindola. llvm-svn: 225534
* Parse: Don't crash when an annotation token shows up in a C++11 attrDavid Majnemer2015-01-092-3/+12
| | | | | | | It's not safe to blindly call getIdentifierInfo without checking the token is not an annotation token. llvm-svn: 225533
* [libc++] Refactor test components into modules.Dan Albert2015-01-096-631/+710
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I've moved the bulk of `lit.cfg` into `test/libcxx/testconfig.py` and `test/libcxx/testformat.py`. All that remains in `lit.cfg` is the logic to discover lit.site.cfg if lit.cfg was run directly, and the logic for loading configuration variants. The configuration variant flow has changed with this patch. Rather than instantiating an object of type `<VARIANT>Configuration`, we now instatiate an object of type `Configuration` that was loaded from the module `<VARIANT>.testconfig.py`. This has to be done on a per-project basis rather than in LIT itself because LIT doesn't actually know where the real test directory is, only where the site configuration is (which is usually in the output directory). It's simple enough to do though, so it's fine to require each project to do it themselves. I also cleaned up all the pylint issues while I was here, which was mostly just a matter of fixing long lines. Reviewers: mclow.lists, jroelofs, EricWF Reviewed By: EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6881 llvm-svn: 225532
* Revert "Bitcode: Move the DEBUG_LOC record to DEBUG_LOC_OLD"Duncan P. N. Exon Smith2015-01-094-4/+4
| | | | | | | | | | | | | | | This reverts commit r225498 (but leaves r225499, which was a worthy cleanup). My plan was to change `DEBUG_LOC` to store the `MDNode` directly rather than its operands (patch was to go out this morning), but on reflection it's not clear that it's strictly better. (I had missed that the current code is unlikely to emit the `MDNode` at all.) Conflicts: lib/Bitcode/Reader/BitcodeReader.cpp (due to r225499) llvm-svn: 225531
* Driver: tweak the code for determining default image nameHans Wennborg2015-01-093-9/+18
| | | | | | | | It seemed odd to have to make DefaultImageName be a mutable member of Driver. We don't need to the full result of computeTargetTriple() to determine the image name; just base it on DefaultTargetTriple. llvm-svn: 225530
* [mips] Add support for accessing $gp as a named register.Daniel Sanders2015-01-095-0/+76
| | | | | | | | | | | | | | | | | | | | | Summary: Mips Linux uses $gp to hold a pointer to thread info structure and accesses it with a named register. This makes this work for LLVM. The N32 ABI doesn't quite work yet since the frontend generates incorrect IR for this case. It neglects to truncate the 64-bit GPR to a 32-bit value before converting to a pointer. Given correct IR (as in the testcase in this patch), it works correctly. Reviewers: sstankovic, vmedic, atanasyan Reviewed By: atanasyan Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6893 llvm-svn: 225529
* fix typos; remove names from comments; NFCSanjay Patel2015-01-091-51/+44
| | | | llvm-svn: 225528
* K-Ballo found a place where we were using 'V' as a template parameter. ↵Marshall Clow2015-01-091-2/+2
| | | | | | Replace with '_Vp' for protection against user-defined macros. llvm-svn: 225527
* remove names from comments; NFCSanjay Patel2015-01-091-40/+35
| | | | llvm-svn: 225526
* fix typos; NFCSanjay Patel2015-01-091-3/+3
| | | | llvm-svn: 225525
* fix typo; NFCSanjay Patel2015-01-091-1/+1
| | | | llvm-svn: 225524
* more efficient use of a dyn_cast; no functional change intendedSanjay Patel2015-01-091-3/+3
| | | | llvm-svn: 225523
* [PowerPC] Enable late partial unrolling on the POWER7Hal Finkel2015-01-094-0/+59
| | | | | | | | | | | | | | | | | | | | | | | | The P7 benefits from not have really-small loops so that we either have multiple dispatch groups in the loop and/or the ability to form more-full dispatch groups during scheduling. Setting the partial unrolling threshold to 44 seems good, empirically, for the P7. Compared to using no late partial unrolling, this yields the following test-suite speedups: SingleSource/Benchmarks/Adobe-C++/simple_types_constant_folding -66.3253% +/- 24.1975% SingleSource/Benchmarks/Misc-C++/oopack_v1p8 -44.0169% +/- 29.4881% SingleSource/Benchmarks/Misc/pi -27.8351% +/- 12.2712% SingleSource/Benchmarks/Stanford/Bubblesort -30.9898% +/- 22.4647% I've speculatively added a similar setting for the P8. Also, I've noticed that the unroller does not quite calculate the unrolling factor correctly for really tiny loops because it neglects to account for the fact that not every loop body replicant contains an ending branch and counter increment. I'll fix that later. llvm-svn: 225522
* [mips] Add comment which explains why we need to change the assembler ↵Toma Tabacu2015-01-091-0/+6
| | | | | | options before and after inline asm blocks. NFC. llvm-svn: 225521
* clang-tidy: [misc-use-override] Simplify regular expressions in test.Daniel Jasper2015-01-091-41/+41
| | | | | | No functional changes. llvm-svn: 225520
* clang-tidy: [misc-use-override] Fix 'override' insertion.Daniel Jasper2015-01-092-9/+28
| | | | | | | | | | Before: void f() __attribute__((override unused)) After: void f() override __attribute__((unused)) llvm-svn: 225519
* Sema: Don't crash when variable is redefined as a constexpr functionDavid Majnemer2015-01-092-1/+6
| | | | | | | | | We have a diagnostic describing that constexpr changed in C++14 when compiling in C++11 mode. While doing this, it examines the previous declaration and assumes that it is a function. However it is possible, in the context of error recovery, for this to not be the case. llvm-svn: 225518
OpenPOWER on IntegriCloud