summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* [libFuzzer] Use custom target instead of list of binaries for tests.Marcos Pividori2017-02-084-16/+8
| | | | | | | | | | Update cmake to use a custom target TestBinaries instead of a list of targets. This simplifies cmake, and fix some errors. This way, we don't have to propagate the values into parents directories. We only need to use add_dependencies. Differential Revision: https://reviews.llvm.org/D29593 llvm-svn: 294389
* [libFuzzer] Properly use Handle instead of FD on Windows.Marcos Pividori2017-02-084-1/+12
| | | | | | | | | | | For Windows, sanitizers work with Handles, not with posix file descriptors, because they use the windows-specific API. So we need to convert the fds to handles before passing them to the sanitizer library. After this change, close_fd_mask is fixed for Windows (this fix some tests too). Differential Revision: https://reviews.llvm.org/D29548 llvm-svn: 294388
* [libFuzzer] Change Uninstrumented test name.Marcos Pividori2017-02-083-2/+2
| | | | | | | | | On Windows, executables with the word "uninst" included in their names are associated with administrator privileges. Differential Revision: https://reviews.llvm.org/D29549 llvm-svn: 294387
* [libFuzzer] fuzzer-jobs requires posix.Marcos Pividori2017-02-081-0/+2
| | | | llvm-svn: 294386
* [libFuzzer] Update fuzzer.test to properly set environment variables.Marcos Pividori2017-02-081-1/+1
| | | | | | | | Use env to set environment variables, so it works on Windows and Linux. Differential Revision: https://reviews.llvm.org/D29537 llvm-svn: 294385
* [libFuzzer] Don't add newline character when using echo in tests.Marcos Pividori2017-02-082-3/+3
| | | | | | | | | Add the option "-n", so we don't add a new line character at the end of the file when using echo. (on Windows this means 2 characters). Differential Revision: https://reviews.llvm.org/D29536 llvm-svn: 294384
* [libFuzzer] Disable ulimit test on windows.Marcos Pividori2017-02-081-0/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D29535 llvm-svn: 294383
* [libFuzzer] Remove ? wildcard on tests.Marcos Pividori2017-02-081-7/+10
| | | | | | | | We can not use the wildcard ? on Windows. Differential Revision: https://reviews.llvm.org/D29534 llvm-svn: 294382
* [libFuzzer] Update fuzzer-segv to set environment variables.Marcos Pividori2017-02-081-1/+1
| | | | | | | | Use env to set environment variables, so it works on Linux and Windows. Differential Revision: https://reviews.llvm.org/D29533 llvm-svn: 294381
* [libFuzzer] Properly configure tests for Windows.Marcos Pividori2017-02-081-0/+17
| | | | | | | | | | This configuration is necessary, and is included in all tests suites. We need to execute: `config.test_format = lit.formats.ShTest(False)` Otherwise, lit will try to use bash, which generates many problems. Differential Revision: https://reviews.llvm.org/D29529 llvm-svn: 294380
* [libFuzzer] Simplify dump_coverage test.Marcos Pividori2017-02-081-11/+7
| | | | | | | | | | Environment variables are handled differently on Windows. In this case it is not necessary to use environment variables. So, I simplify the test to work on Windows. Differential Revision: https://reviews.llvm.org/D29532 llvm-svn: 294379
* [libFuzzer] Update Load test to work on 32 bits.Marcos Pividori2017-02-081-1/+1
| | | | | | | | | | We should ensure the size of the variable `a` is 8 bytes. Otherwise, this generates a stack buffer overflow inside the memcpy call in 32 bits machines. (We write more bytes than the size of a, when it is 4 bytes) Differential Revision: https://reviews.llvm.org/D29602 llvm-svn: 294378
* [libFuzzer] Update test to consider different exceptions.Marcos Pividori2017-02-082-2/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D29531 llvm-svn: 294377
* [libFuzzer] Temporarily fix Shmem for Windows.Marcos Pividori2017-02-082-0/+65
| | | | | | | | | In this diff, I add stubs for shared memory on Windows. Now we can compile and use libFuzzer without support for shared memory. Differential Revision: https://reviews.llvm.org/D29544 llvm-svn: 294376
* [IRCE] Add a missing invariant checkSanjoy Das2017-02-072-5/+84
| | | | | | | | | | | | | | | | | | | | | | | Currently IRCE relies on the loops it transforms to be (semantically) of the form: for (i = START; i < END; i++) ... or for (i = START; i > END; i--) ... However, we were not verifying the presence of the START < END entry check (i.e. check before the first iteration). We were only verifying that the backedge was guarded by (i + 1) < END. Usually this would work "fine" since (especially in Java) most loops do actually have the START < END check, but of course that is not guaranteed. llvm-svn: 294375
* [CMake] Allow overriding CMAKE_LIBTOOLChris Bieneman2017-02-071-10/+13
| | | | | | This patch allows a user to specify a their own libtool instead of auto-detecting one. llvm-svn: 294371
* [MC] Fix some Clang-tidy modernize and Include What You Use warnings; other ↵Eugene Zelenko2017-02-0724-242/+347
| | | | | | minor fixes (NFC). llvm-svn: 294369
* [PowerPC] Fix some Include What You Use warnings; other minor fixes (NFC).Eugene Zelenko2017-02-071-3/+11
| | | | | | This is preparation to reduce MC headers dependencies. llvm-svn: 294368
* [CMake] Fix USE_LLVM_SANITIZER configuration for out-of-tree builds.Eric Fiselier2017-02-071-2/+5
| | | | | | | | | | | | | | | | | Summary: r291918 changed `HandleLLVMOptions.cmake` to add `-fsanitize-blacklist=<llvm-file>` when `LLVM_USE_SANITIZER=Undefined` is specified. This breaks out-of-tree users of `LLVM_USE_SANITIZER` since that file is not present. This patch fixes the issue by checking if the file exists first. Reviewers: mgorny, bogner, vitalybuka, krasin Reviewed By: krasin Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29686 llvm-svn: 294367
* [libFuzzer] replace std::random_shuffle with std::shuffle as ↵Kostya Serebryany2017-02-074-10/+7
| | | | | | std::random_shuffle is being deprecated in C++17. Also simplify fuzzer::Random. NFC llvm-svn: 294366
* [X86][SSE] Add SSE2 build vector insertion testsSimon Pilgrim2017-02-071-105/+285
| | | | llvm-svn: 294365
* PredicateInfo: Some compilers are unhappy with naming Use *'s Use. Change ↵Daniel Berlin2017-02-071-13/+13
| | | | | | the name. llvm-svn: 294364
* [X86][SSE] Add additional v4i32/v8i16/v16i8 build vector insertion testsSimon Pilgrim2017-02-071-0/+272
| | | | | | With particular interest in cases where we don't make use of implicit zeroing or fail to break register dependencies llvm-svn: 294363
* Fix some missing negations in the traits checking from r294349David Blaikie2017-02-071-4/+4
| | | | llvm-svn: 294357
* DebugInfo: Track spilled variables in LiveDebugValuesWolfgang Pieb2017-02-072-7/+605
| | | | | | | | | | | | | When variables are spilled to the stack by the register allocator, keep track of their debug locations in LiveDebugValues and insert DBG_VALUE instructions at the appropriate place. Ensure that the locations are propagated down the dominator tree via the existing mechanisms. Reviewer: aprantl Differential Revision: https://reviews.llvm.org/D29500 llvm-svn: 294356
* Fix a typo in an error message for a check of invalid Mach-O files whereKevin Enderby2017-02-072-2/+2
| | | | | | | | | | | | it was printing the field name fileoff instead of filesize. The original check was added in r278557. This was found in tracking down the problem that lead to the fix in r293842 - [dsymutil] Fix __LINKEDIT vmsize in dsymutil upgrade path rdar://30386075 llvm-svn: 294354
* Add PredicateInfo utility and printing passDaniel Berlin2017-02-078-0/+1559
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds a utility to build extended SSA (see "ABCD: eliminating array bounds checks on demand"), and an intrinsic to support it. This is then used to get functionality equivalent to propagateEquality in GVN, in NewGVN (without having to replace instructions as we go). It would work similarly in SCCP or other passes. This has been talked about a few times, so i built a real implementation and tried to productionize it. Copies are inserted for operands used in assumes and conditional branches that are based on comparisons (see below for more) Every use affected by the predicate is renamed to the appropriate intrinsic result. E.g. %cmp = icmp eq i32 %x, 50 br i1 %cmp, label %true, label %false true: ret i32 %x false: ret i32 1 will become %cmp = icmp eq i32, %x, 50 br i1 %cmp, label %true, label %false true: ; Has predicate info ; branch predicate info { TrueEdge: 1 Comparison: %cmp = icmp eq i32 %x, 50 } %x.0 = call @llvm.ssa_copy.i32(i32 %x) ret i32 %x.0 false: ret i23 1 (you can use -print-predicateinfo to get an annotated-with-predicateinfo dump) This enables us to easily determine what operations are affected by a given predicate, and how operations affected by a chain of predicates. Reviewers: davide, sanjoy Subscribers: mgorny, llvm-commits, Prazek Differential Revision: https://reviews.llvm.org/D29519 Update for review comments Fix a bug Nuno noticed where we are giving information about and/or on edges where the info is not useful and easy to use wrong Update for review comments llvm-svn: 294351
* ADT: Add explicit conversions for reverse ilist iteratorsDuncan P. N. Exon Smith2017-02-074-3/+137
| | | | | | | | | | | | | | | Add explicit conversions between forward and reverse ilist iterators. These follow the conversion conventions of std::reverse_iterator, which are off-by-one: the newly-constructed "reverse" iterator dereferences to the previous node of the one sent in. This has the benefit of converting reverse ranges in place: - If [I, E) is a valid range, - then [reverse(E), reverse(I)) gives the same range in reverse order. ilist_iterator::getReverse() is unchanged: it returns a reverse iterator to the *same* node. llvm-svn: 294349
* [X86] Disable conditional tail calls (PR31257)Hans Wennborg2017-02-0710-341/+6
| | | | | | | | | They are currently modelled incorrectly (as calls, which clobber registers, confusing e.g. Machine Copy Propagation). Reverting until we figure out the proper solution. llvm-svn: 294348
* Fix the docs buildSanjoy Das2017-02-071-5/+6
| | | | | | (and add a bit of formatting.) llvm-svn: 294347
* GlobalISel: translate @llvm.va_end intrinsic.Tim Northover2017-02-072-0/+14
| | | | | | | Turns out no-one actually cares about this one (at least) in tree so we can just drop it entirely. llvm-svn: 294345
* [x86] improve comments for SHRUNKBLEND node creation; NFCSanjay Patel2017-02-072-28/+27
| | | | llvm-svn: 294344
* [LV] Add new ARM/AArch64 interleaved access cost model tests (NFC)Matthew Simpson2017-02-072-0/+153
| | | | llvm-svn: 294342
* This patch adds a ssa_copy intrinsic, as part of splitting up D29316.Daniel Berlin2017-02-072-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | Summary: The intrinsic, marked as returning it's first argument, has no code generation effect (though currently not every optimization pass knows that intrinsics with the returned attribute can be looked through). It is about to be used to by the PredicateInfo pass to attach predicate information to existing operands, and be able to tell what the predicate information affects. We deliberately do not attach any info through a second operand so that the intrinsics do not need to dominate the comparisons/etc (since in the case of assume, we may want to push them up the post-dominator tree). Reviewers: davide, sanjoy Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29517 llvm-svn: 294341
* Replace custom written DFS walk with depth first iteratorDaniel Berlin2017-02-072-67/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: GenericDomTreeConstruction had its own written DFS walk. It is basically identical to the DFS walk df_* is doing in the iterators. the one difference is that df_iterator uses an internal visited set. The GenericDomTreeConstruction one reused a field in an existing densemap lookup. Time-wise, this way is actually more cache-friendly (the previous way has a random store into a successor's info, the new way does that store at the same time and in the same place as other stores to the same info) It costs some very small amount of memory to do this, and one we pay in some other part of dom tree construction *anyway*, so we aren't really increasing dom tree constructions's peak memory usage. It could still be changed to use the old field with a little work on df_ext_* if we care (and if someone find performance regressions) Reviewers: chandlerc Reviewed By: chandlerc Subscribers: Eugene.Zelenko, llvm-commits Differential Revision: https://reviews.llvm.org/D8932 llvm-svn: 294339
* [ImplicitNullCheck] Extend Implicit Null Check scope by using storesSanjoy Das2017-02-0711-86/+809
| | | | | | | | | | | | | | | | | | | | | Summary: This change allows usage of store instruction for implicit null check. Memory Aliasing Analisys is not used and change conservatively supposes that any store and load may access the same memory. As a result re-ordering of store-store, store-load and load-store is prohibited. Patch by Serguei Katkov! Reviewers: reames, sanjoy Reviewed By: sanjoy Subscribers: atrick, llvm-commits Differential Revision: https://reviews.llvm.org/D29400 llvm-svn: 294338
* [x86] use range-for loops; NFCISanjay Patel2017-02-071-8/+6
| | | | llvm-svn: 294337
* [LV] Simplify ARM/AArch64 interleaved access cost model tests (NFC)Matthew Simpson2017-02-072-89/+76
| | | | | | | | This patch removes unneeded instructions from the existing ARM/AArch64 interleaved access cost model tests. I'll be adding a similar set of tests in a follow-on patch to increase coverage. llvm-svn: 294336
* [CMake] Move ninja job pool options to HandleLLVMOptionsChris Bieneman2017-02-072-23/+24
| | | | | | Moving the Ninja job pool configuration settings into the HandleLLVMOptions module will allow standalone builds of LLVM sub-projects to use the LLVM options without needing to re-implement them. llvm-svn: 294334
* [x86] use getSignBit() for clarity; NFCISanjay Patel2017-02-071-4/+3
| | | | llvm-svn: 294333
* Fix the -Werror build for some sign-comparisonsDavid Blaikie2017-02-071-1/+1
| | | | llvm-svn: 294331
* [PowerPC][Altivec] Add vnot extended mnemonicNemanja Ivanovic2017-02-073-20/+24
| | | | | | | | | | Adds the vnot extended mnemonic for the vnor instruction. Committing on behalf of brunoalr (Bruno Rosa). Differential Revision: https://reviews.llvm.org/D29225 llvm-svn: 294330
* [SDAGISel] Simplify some SDAGISel code, NFCReid Kleckner2017-02-072-81/+84
| | | | | | | | | | | | Hoist entry block code for arguments and swift error values out of the basic block instruction selection loop. Lowering arguments once up front seems much more readable than doing it conditionally inside the loop. It also makes it clear that argument lowering can update StaticAllocaMap because no instructions have been selected yet. Also use range-based for loops where possible. llvm-svn: 294329
* Attempt to fix MSVC build broken by r294326Pavel Labath2017-02-072-21/+15
| | | | | | MSVC does not think that `char []` can be constexpr. Switch to regular const. llvm-svn: 294327
* [Support] Add FormatVariadic support for chrono typesPavel Labath2017-02-073-0/+139
| | | | | | | | | | | | | | | | Summary: The formatter has three knobs: - the user can choose which time unit to use for formatting (default: whatever is the unit of the input) - he can choose whether the unit gets displayed (default: yes) - he can affect the way the number itself is formatted via standard number formatting options (default:default) Reviewers: zturner, inglorion Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D29481 llvm-svn: 294326
* [TargetLowering] fix formatting and comments for ShrinkDemandedConstant; NFCSanjay Patel2017-02-071-19/+20
| | | | llvm-svn: 294325
* [AMDGPU] Fix for SIMachineScheduler crash. SI Scheduler should trackAlexander Timofeev2017-02-073-4/+52
| | | | | | | | lane masks. Differential revision: https://reviews.llvm.org/D29442 llvm-svn: 294324
* [InstCombine] Make max size array combine a tunable.Davide Italiano2017-02-074-3/+13
| | | | | | | Requested by Sanjoy/Hal a while ago, and forgotten by me (r283612). llvm-svn: 294323
* [Hexagon] Update instruction typesKrzysztof Parzyszek2017-02-077-31/+77
| | | | | | | | | Remove TypeXTYPE, TypeALU32, TypeSYSTEM, TypeJR, and instead use their architecture counterparts. Patch by Colin LeMahieu. llvm-svn: 294321
* [Hexagon] Remove encoding bits from mapped instructionsKrzysztof Parzyszek2017-02-077-22/+224
| | | | | | | | | | - Map A2_zxtb to A2_andir. - Map PS_call_nr J2_call. - Map A2_tfr[t|f][new] to A2_padd[t|f][new]. Patch by Colin LeMahieu. llvm-svn: 294320
OpenPOWER on IntegriCloud