- Aug 28, 2020
-
-
Matt Arsenault authored
I mis-resolved the revert through moving the code to another function.
-
Matt Arsenault authored
This reverts commit e53b7997. Confusingly, this does not simply and the two sets of known bits, but implements known bits for the and operator.
-
Dokyung Song authored
The CrossOver mutator is meant to cross over two given buffers (referred to as the first/second buffer henceforth). Previously InsertPartOf/CopyPartOf calls used in the CrossOver mutator incorrectly inserted/copied part of the second buffer into a "scratch buffer" (MutateInPlaceHere of the size CurrentMaxMutationLen), rather than the first buffer. This is not intended behavior, because the scratch buffer does not always (i) contain the content of the first buffer, and (ii) have the same size as the first buffer; CurrentMaxMutationLen is typically a lot larger than the size of the first buffer. This patch fixes the issue by using the first buffer instead of the scratch buffer in InsertPartOf/CopyPartOf calls. A FuzzBench experiment was run to make sure that this change does not inadvertently degrade the performance. The performance is largely the same; more details can be found at: https://storage.googleapis.com/fuzzer-test-suite-public/fixcrossover-report/index.html This patch also adds two new tests, namely "cross_over_insert" and "cross_over_copy", which specifically target InsertPartOf and CopyPartOf, respectively. - cross_over_insert.test checks if the fuzzer can use InsertPartOf to trigger the crash. - cross_over_copy.test checks if the fuzzer can use CopyPartOf to trigger the crash. These newly added tests were designed to pass with the current patch, but not without the it (with 790878f2 these tests do not pass). To achieve this, -max_len was intentionally given a high value. Without this patch, InsertPartOf/CopyPartOf will generate larger inputs, possibly with unpredictable data in it, thereby failing to trigger the crash. The test pass condition for these new tests is narrowed down by (i) limiting mutation depth to 1 (i.e., a single CrossOver mutation should be able to trigger the crash) and (ii) checking whether the mutation sequence of "CrossOver-" leads to the crash. Also note that these newly added tests and an existing test (cross_over.test) all use "-reduce_inputs=0" flags to prevent reducing inputs; it's easier to force the fuzzer to keep original input string this way than tweaking cov-instrumented basic blocks in the source code of the fuzzer executable. Differential Revision: https://reviews.llvm.org/D85554
-
Vitaly Buka authored
Now findAllocaForValue can handle nontrivial phi cycles.
-
Cullen Rhodes authored
Test CodeGen/attr-arm-sve-vector-bits-call.c is failing on some builders [1][2]. Reverting whilst I investigate. [1] http://lab.llvm.org:8011/builders/fuchsia-x86_64-linux/builds/10375 [2] https://luci-milo.appspot.com/p/fuchsia/builders/ci/clang-linux-x64/b8870800848452818112 This reverts commit 42587345.
-
Brad Smith authored
Patch by: Philip Guenther
-
Alexey Bataev authored
region. If the global variable is used in the target region,it is always captured, if not marked as declare target.
-
Azharuddin Mohammed authored
For macOS, the code says, the XRay flag is only supported on x86_64. Updating the test and making that check explicit. Differential Revision: https://reviews.llvm.org/D85773
-
Shinji Okumura authored
Even if noundef is deduced for a position, we should not manifest it when the position is dead. This is because the associated values with dead positions are replaced with undef values by AAIsDead. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D86565
-
Saiyedul Islam authored
Removed version 45 testing from a failing test for now.
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
It's possible to have a single virtual register def with a subreg index that would pass the previous check, but it's not possible to have a subregister def in SSA. This is in preparation for adding stricter checks for SSA MIR.
-
Vitaly Buka authored
Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D86672
-
Vitaly Buka authored
For StackLifetime after finding alloca we need to check that values ponting to the begining of alloca. Reviewed By: eugenis Differential Revision: https://reviews.llvm.org/D86692
-
Matt Arsenault authored
Intrinsic declarations use the default subtarget, but this should be using the subtarget for the calling function. I haven't been able to come up with a case where it matters though.
-
Matt Arsenault authored
Also make up a new category of combines.
-
Krzysztof Parzyszek authored
-
Eli Friedman authored
-
Shinji Okumura authored
If an AA is registered to the dependency graph in the manifest stage, Attributor aborts in `::manifestAttributes()`. This patch prevents such termination. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D86734
-
Craig Topper authored
[CodeGen] Use an AttrBuilder to bulk remove 'target-cpu', 'target-features', and 'tune-cpu' before re-adding in CodeGenModule::setNonAliasAttributes. I think the removeAttributes interface should be faster than calling removeAttribute 3 times.
-
Saiyedul Islam authored
This third patch in the series removes version 5.0 string from test cases making them check for default version. It also add test cases for version 4.5. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D85214
-
Roman Lebedev authored
As pointed out in post-commit review, this can legally be called on instructions that are not inserted into basic blocks, so don't blindly assume that there is basic block.
-
Christopher Tetreault authored
Reviewed By: tejohnson Differential Revision: https://reviews.llvm.org/D86727
-
Yang Fan authored
Parameters were in a different order in the header and in the implementation. Fix surrounding comments a bit. Differential Revision: https://reviews.llvm.org/D86691
-
Yang Fan authored
There's no need to remind people about that when clang *is* built with asserts. Differential Revision: https://reviews.llvm.org/D86334
-
Adam Balogh authored
llvm::isa<>() and llvm::isa_and_not_null<>() template functions recently became variadic. Unfortunately this causes crashes in case of isa_and_not_null<>() and incorrect behavior in isa<>(). This patch fixes this issue. Differential Revision: https://reviews.llvm.org/D85728
-
Adam Balogh authored
The successfulness of a dynamic cast depends only on the C++ class, not the pointer or reference. Thus if *A is a *B, then &A is a &B, const *A is a const *B etc. This patch changes DynamicCastInfo to store and check the cast between the unqualified pointed/referenced types. It also removes e.g. SubstTemplateTypeParmType from both the pointer and the pointed type. Differential Revision: https://reviews.llvm.org/D85752
-
Dokyung Song authored
value-profile-load.test needs adjustment with a mutator change in bb54bcf8, which reverted as of now, but will be recommitted after landing this patch. This patch makes value-profile-load.test more friendly to (and aware of) the current value profiling strategy, which is based on the hamming as well as the absolute distance. To this end, this patch adjusts the set of input values that trigger an expected crash. More specifically, this patch now uses a single value 0x01effffe as a crashing input, because this value is close to values like {0x1ffffff, 0xffffff, ...}, which are very likely to be added to the corpus per the current hamming- and absolute-distance-based value profiling strategy. Note that previously the crashing input values were {1234567 * {1, 2, ...}, s.t. < INT_MAX}. Every byte in the chosen value 0x01effeef is intentionally different; this was to make it harder to find the value without the intermediate inputs added to the corpus by the value profiling strategy. Also note that LoadTest.cpp now uses a narrower condition (Size != 8) for initial pruning of inputs, effectively preventing libFuzzer from generating inputs longer than necessary and spending time on mutating such long inputs in the corpus - a functionality not meant to be tested by this specific test. Differential Revision: https://reviews.llvm.org/D86247
-
Haojian Wu authored
Differential Revision: https://reviews.llvm.org/D86685
-
Shinji Okumura authored
If we query an AA with `Attributor::getAAFor` in `AbstractAttribute::manifest`, the AA may be updated. This patch makes use of the phase flag in Attributor, and handle `getAAFor` behavior according to the flag. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D86635
-
Vincent Zhao authored
The prior diff that introduced `addAffineIfOpDomain` missed appending constraints from the ifOp domain. This revision fixes this problem. Differential Revision: https://reviews.llvm.org/D86421
-
Christopher Tetreault authored
Reviewed By: spatel Differential Revision: https://reviews.llvm.org/D82056
-
Saiyedul Islam authored
Many OpenMP Clang tests do not RUN for version 4.5 and the default version. This second patch in the series handles test cases which require updation in CHECK lines along with adding RUN lines for the default version. It involves updating line number of pragmas. Reviewed By: ABataev Differential Revision: https://reviews.llvm.org/D85150
-
Kiran Chandramohan authored
Adding a conversion pattern for the parallel Operation. This will help the conversion of parallel operation with standard dialect to parallel operation with llvm dialect. The type conversion of the block arguments in a parallel region are controlled by the pattern for the parallel Operation. Without this pattern, a parallel Operation with block arguments cannot be converted from standard to LLVM dialect. Other OpenMP operations without regions are marked as legal. When translation of OpenMP operations with regions are added then patterns for these operations can also be added. Also uses all the standard to llvm patterns. Patterns of other dialects can be added later if needed. Reviewed By: rriddle Differential Revision: https://reviews.llvm.org/D86273
-
Jez Ng authored
It seems to be failing on some Google Buildbots. This diff also includes a minor fix for the install name of one of libSystem's re-exports. I don't think it's the cause of the test failure, though. The wrong install name just meant that the symbol lookup failure would still happen, but it would have been caused by the re-export not being found, instead of the arch failing to match. Differential Revision: https://reviews.llvm.org/D86728
-
Louis Dionne authored
This fixes a mismatched visibility attribute on the call operator in addition to making the code clearer. Given this is a simple lambda in essence, the intent has always been to give it inline visibility.
-
Christopher Tetreault authored
Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D81500
-
Matt Arsenault authored
Avoid repeating for zero and one
-
Matt Arsenault authored
-