summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [PowerPC] Add the 'attn' instructionHal Finkel2014-11-254-0/+18
| | | | | | | | The attn instruction is not part of the Power ISA, but is documented in the A2 user manual, and is accepted by the GNU assembler for the A2 and the POWER4+. Reported as part of PR21650. llvm-svn: 222712
* Print lit configuration information after all configuration is done.Eric Fiselier2014-11-241-7/+10
| | | | llvm-svn: 222711
* [PowerPC] Implement combineRepeatedFPDivisorsHal Finkel2014-11-243-0/+62
| | | | | | | | This does not matter on newer cores (where we can use reciprocal estimates in fast-math mode anyway), but for older cores this allows us to generate better fast-math code where we have multiple FDIVs with a common divisor. llvm-svn: 222710
* Factor check for the assume intrinsic out of checks in ↵Philip Reames2014-11-241-42/+39
| | | | | | | | | | | | | | computeKnownBitsFromAssume We were matching against the assume intrinsic in every check. Since we know that it must be an assume, this is just wasted work. Somewhat surprisingly, matching an intrinsic id is actually relatively expensive. It devolves to a string construction and comparison in Function::isIntrinsic. I originally spotted this because it showed up in a performance profile of my compiler. I've since discovered a separate issue which seems to be the actual root cause, but this is minor perf goodness regardless. I'm likely to follow up with another change to factor out the comparison matching. There's no need to match the compare instruction in every single one of the tests. Differential Revision: http://reviews.llvm.org/D6312 llvm-svn: 222709
* See if this fixes Mips bot; ignore contents of parameter lists.Paul Robinson2014-11-241-6/+6
| | | | llvm-svn: 222708
* Incorporate review comments from r221742Philip Reames2014-11-241-2/+11
| | | | | | This change implements the comment and style changes Sean requested during post commit review with r221742. Sorry for the delay. llvm-svn: 222707
* Bug 21610: Canonicalize min/max fcmp selects to use ordered comparisonsMatt Arsenault2014-11-243-9/+163
| | | | llvm-svn: 222705
* Convert test to FileCheck and use CHECK-LABELMatt Arsenault2014-11-242-1/+11
| | | | llvm-svn: 222704
* [libcxxabi] Refactor building and testing libc++abi without threadsEric Fiselier2014-11-247-3/+33
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds CMake support for building and testing libc++abi without threads. 1. Add `LIBCXXABI_ENABLE_THREADS` option to CMake. 2. Propagate `LIBCXXABI_ENABLE_THREADS` to lit via lit.site.cfg.in 3. Configure tests for `LIBCXXABI_ENABLE_THREADS=OFF Currently the test suite does not work when libc++abi is built without threads because that information does not propagate to the test suite. Reviewers: danalbert, mclow.lists, jroelofs Reviewed By: jroelofs Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6393 llvm-svn: 222702
* [libcxxabi] Refactor test timing logic and disable by default.Eric Fiselier2014-11-247-43/+69
| | | | | | | | | | | | | | | | | | Summary: When using LIT the timing output is entirely unused but introduces a dependency on `<chrono>`. When libc++ is built without a montonic clock this causes some of the tests to fail. This patch factors out all of the timing logic into `support/timer.hpp` and disables it by default. To enable the timing you must define `LIBCXXABI_TIME_TESTS`. Reviewers: mclow.lists, danalbert, jroelofs Reviewed By: jroelofs Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6391 llvm-svn: 222701
* Clarify wording in the LangRef around !invariant.loadPhilip Reames2014-11-241-4/+5
| | | | | | | | | | | | | | | Clarify the wording around !invariant.load to properly reflect the semantics of such loads with respect to control dependence and location lifetime. To the best of my knowledge, the revised wording respects the actual implementation and understanding of issues involved highlighted in the recent 'Optimization hints for "constant" loads' thread on LLVMDev. In particular, I'm aiming for the following results: - To clarify that an invariant.load can fault and must respect control dependence. In particular, it is not sound to unconditionally pull an invariant load out of a loop if that loop would potentially never execute. - To clarify that the invariant nature of a given pointer does not preclude the modification of that location through a pointer which is unrelated to the load operand. In particular, initializing a location and then passing a pointer through an opaque intrinsic which produces a new unrelated pointer, should behave as expected provided that the intrinsic is memory dependent on the initializing store. - To clarify that storing a value to an invariant location is defined. It can not, for example, be considered unreachable. The value stored can be assumed to be equal to the value of any previous (or following!) invariant load, but the store itself is defined. I recommend that anyone interested in using !invariant.load, or optimizing for them, read over the discussion in the review thread. A number of motivating examples are discussed. Differential Revision: http://reviews.llvm.org/D6346 llvm-svn: 222700
* [TSan] Deflake testAlexey Samsonov2014-11-241-0/+3
| | | | llvm-svn: 222699
* Add better support for custom test runners.Dan Albert2014-11-241-27/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I finally got around to merging the many, many changes to lit.cfg into Android's libc++. This patch makes it simpler to actually use a custom configuration and test format. First, I've factored out _build, _run, and _clean methods from _execute_test, since these are the likely parts that will need to be overridden. This is likely a first step in the work jroelofs has been doing with improving cross-compiling test execution. Second, I've added a `configuration_variant` to the config. This entry, if present, is a string that forms the prefix of the class that is to be used to configure the test runner. For example, Android sets `config.configuration_variant = 'Android'`, and this causes an object of type `AndroidConfiguration` to be constructed. As an example of how this will be used, see: https://android-review.googlesource.com/#/c/116022/ Reviewers: jroelofs, mclow.lists, EricWF Reviewed By: EricWF Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6373 llvm-svn: 222698
* Remove unnecessary environment switchReid Kleckner2014-11-241-11/+1
| | | | | | | | All supported environments on x86 Windows return structs in EAX:EDX. This removes code added in r204978 that had to get updated in r222680. We should now have the same behavior we had before r204978. llvm-svn: 222697
* Force the correction of delayed typos in casts in non-C++ code.Kaelyn Takata2014-11-242-0/+11
| | | | | | | Fixes PR21656, which is fallout from r222551 caused by an untested/missed code path. llvm-svn: 222694
* Filter the toplevel matchers by kind.Samuel Benzaquen2014-11-245-12/+125
| | | | | | | | | | | | | | | | | | Summary: Filter the toplevel matchers by kind. Decl and Stmt matchers are tied to a specific node kind and trying to match incompatible nodes is a waste. Precalculate a filtered list of matchers that have a chance of matching the node and ignore the rest. Speeds up our clang-tidy benchmark by ~10% Reviewers: klimek Subscribers: klimek, cfe-commits Differential Revision: http://reviews.llvm.org/D6361 llvm-svn: 222688
* Add a disable-output option to the gold plugin.Rafael Espindola2014-11-242-9/+26
| | | | | | This corresponds to the opt option and is handy for profiling. llvm-svn: 222687
* testing: make test use FileCheckTim Northover2014-11-241-1/+4
| | | | | | | The "grep internal | count" was fragile when your source or remote paths could contain the word "internal". llvm-svn: 222685
* Remove the unused FindUsedTypes pass.Rafael Espindola2014-11-246-170/+0
| | | | | | It was dead since r134829. llvm-svn: 222684
* Correctly remove OptimizeForSize from functions marked OptimizeNone.Paul Robinson2014-11-243-11/+118
| | | | | | | This allows using __attribute__((optnone)) and the -Os/-Oz options. Fixes PR21604. llvm-svn: 222683
* Add and use Type::subtypes. NFC.Rafael Espindola2014-11-243-6/+7
| | | | llvm-svn: 222682
* Pass the .ll files to llvm-link directly. NFC.Rafael Espindola2014-11-243-8/+2
| | | | llvm-svn: 222681
* CodeGen: make i686-windows-itanium more similar to msvcSaleem Abdulrasool2014-11-242-2/+18
| | | | | | | The itanium environment follows the system calling convention for structures. Pass small aggregates via registers. llvm-svn: 222680
* CodeGen: use a range-based for loopSaleem Abdulrasool2014-11-241-3/+2
| | | | | | Convert a debug assertion into a range-based loop form. NFC. llvm-svn: 222679
* Correct path to regression tests in ExtendingLLVMSergey Dmitrouk2014-11-241-4/+4
| | | | llvm-svn: 222678
* [AArch64] Fix clobber computation in A57LoadBalancing pass.Chad Rosier2014-11-241-1/+7
| | | | | | | Extremely difficult to reproduce, so no test case included. PR21637 llvm-svn: 222677
* Removing unused variable.Colin LeMahieu2014-11-241-1/+0
| | | | llvm-svn: 222676
* [asan/coverage] change the way asan coverage instrumentation is done: ↵Kostya Serebryany2014-11-246-26/+28
| | | | | | instead of setting the guard to 1 in the generated code, pass the pointer to guard to __sanitizer_cov and set it there. No user-visible functionality change expected llvm-svn: 222675
* [libcxxabi] Delay adjustment of pointer to prevent referencing invalid memory.Eric Fiselier2014-11-241-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch delays the dereference adjustment until we are sure the thrown type is a pointer type. It is possible the thrown type is not a pointer and is smaller than `sizeof(void*)`. If the thrown type is is smaller than `sizeof(void*)` the deference adjustment will result in a heap buffer overflow. I audited all the call sites of `can_catch(...)` and there are no places where `adjustedPtr` is used if `can_catch(...)` returns false. For this reason the patch should not introduce any functionality change. This patch fixes the following tests when using ASAN: * unwind_01.cpp * unwind_02.cpp * unwind_04.cpp Reviewers: danalbert, jroelofs, mclow.lists Reviewed By: mclow.lists Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D6353 llvm-svn: 222674
* [compiler-rt] Make the MSAN wmemset intercepter call wmemset instead of ↵Eric Fiselier2014-11-242-1/+11
| | | | | | | | | | | | | | | | | | | | memset. Fixes PR 21579 Summary: Exactly what the title says. I've tested this change against the libc++ test failures and it solves all of them. The check-msan rule also still passes. I'm not sure why it called memset originally. I can add tests if requested but currently there are no tests involving wide chars and they are a c++11 features. Reviewers: kcc, eugenis Reviewed By: eugenis Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6352 llvm-svn: 222673
* [PowerPC] Fix PR 21652 - copy st_other bits on symbol assignmentUlrich Weigand2014-11-242-0/+36
| | | | | | | | | | | When processing an assignment in the integrated assembler that sets a symbol to the value of another symbol, we need to copy the st_other bits that encode the local entry point offset. Modeled after MipsTargetELFStreamer::emitAssignment handling of the ELF::STO_MIPS_MICROMIPS flag. llvm-svn: 222672
* More long path name support on Windows, this time in program execution.Paul Robinson2014-11-244-9/+74
| | | | | | | Allows long paths for the executable and redirected stdin/stdout/stderr. Addresses PR21563. llvm-svn: 222671
* [Hexagon] Adding asrh instruction, removing unused multiclasses.Colin LeMahieu2014-11-243-40/+17
| | | | llvm-svn: 222670
* [Hexagon] Adding aslh instruction.Colin LeMahieu2014-11-243-5/+17
| | | | llvm-svn: 222668
* Reverting r222646; the tests do not pass on Windows. Also reverts r222664, ↵Aaron Ballman2014-11-247-316/+12
| | | | | | which was required for r222646 to compile with Visual Studio 2012. llvm-svn: 222667
* Fix line endingsNico Rieck2014-11-241-3/+3
| | | | llvm-svn: 222666
* Fix crash when using __if_exists in C modeNico Rieck2014-11-242-2/+90
| | | | llvm-svn: 222665
* Unbreaking the MSVC 2012 build; however, these tests still fail on Windows.Aaron Ballman2014-11-241-5/+12
| | | | llvm-svn: 222664
* [Hexagon] Adding zxth instruction.Colin LeMahieu2014-11-243-5/+17
| | | | llvm-svn: 222662
* Adding const iterator to MCInst. http://reviews.llvm.org/D6359Colin LeMahieu2014-11-241-1/+4
| | | | llvm-svn: 222661
* [Hexagon] Adding zxtb instruction.Colin LeMahieu2014-11-243-5/+53
| | | | llvm-svn: 222660
* InstCombine: Don't create an unused instructionDavid Majnemer2014-11-242-2/+11
| | | | | | | | | | We would create an instruction but not inserting it. Not inserting the unused instruction would lead us to verification failure. This fixes PR21653. llvm-svn: 222659
* [mips][microMIPS] Fix JRADDIUSP instructionJozef Kolek2014-11-242-5/+2
| | | | | | | | | Fix JRADDIUSP instruction, remove delay slot flag because this instruction doesn't have delay slot. Differential Revision: http://reviews.llvm.org/D6365 llvm-svn: 222658
* Reverting r222638; it broke the MSVC build bots because Visual Studio 2012 ↵Aaron Ballman2014-11-246-382/+413
| | | | | | does not support variadic templates. Also reverting r222641 because it was relying on 222638. llvm-svn: 222656
* Fix lldb(1) man page formattingEd Maste2014-11-241-16/+16
| | | | | | | | | | - Use canonical date order (per groff & mandoc) - Fix capitalization on one .Nm - Remove EOL whitespace Patch by Baptiste Daroussin in FreeBSD svn r274927. llvm-svn: 222655
* Added comment about llvm_execute_on_thread waiting for thread to complete.Yaron Keren2014-11-241-1/+2
| | | | llvm-svn: 222654
* [mips][microMIPS] Implement LBU16, LHU16, LW16, SB16, SH16 and SW16 instructionsJozef Kolek2014-11-247-0/+209
| | | | | | Differential Revision: http://reviews.llvm.org/D5122 llvm-svn: 222653
* [mips][microMIPS] Implement 16-bit instructions registers including ZERO ↵Jozef Kolek2014-11-243-0/+41
| | | | | | | | | | instead of S0 Implement microMIPS 16-bit instructions register set: $0, $2-$7 and $17. Differential Revision: http://reviews.llvm.org/D5780 llvm-svn: 222652
* [Mips] Update MIPS relocations listSimon Atanasyan2014-11-241-0/+28
| | | | | | No functional changes. llvm-svn: 222651
* Replace a comment that says 'unreachable' with llvm_unreachable in TableGen ↵Craig Topper2014-11-241-1/+1
| | | | | | AsmWriter output. llvm-svn: 222650
OpenPOWER on IntegriCloud