- May 20, 2020
-
-
Matt Morehouse authored
Summary: This is collaboration between Marcel Boehme @ Monash, Australia and Valentin Manès plus Sang Kil Cha @ KAIST, South Korea. We have made a few modifications to boost LibFuzzer performance by changing how weights are assigned to the seeds in the corpus. Essentially, seeds that reveal more "information" about globally rare features are assigned a higher weight. Our results on the Fuzzer Test Suite seem quite promising. In terms of bug finding, our Entropic patch usually finds the same errors much faster and in more runs. In terms of coverage, our version Entropic achieves the same coverage in less than half the time for the majority of subjects. For the lack of space, we shared more detailed performance results directly with @kcc. We'll publish the preprint with all the technical details as soon as it is accepted. Happy to share if you drop us an email. There should be plenty of opportunities to optimise further. For instance, while Entropic achieves the same coverage in less than half the time, Entropic has a much lower #execs per second. We ran the perf-tool and found a few performance bottlenecks. Thanks for open-sourcing LibFuzzer (and the entire LLVM Compiler Infrastructure)! This has been such a tremendous help to my research. Patch By: Marcel Boehme Reviewers: kcc, metzman, morehouse, Dor1s, vitalybuka Reviewed By: kcc Subscribers: dgg5503, Valentin, llvm-commits, kcc Tags: #llvm Differential Revision: https://reviews.llvm.org/D73776
-
Andrea Di Biagio authored
This effectively splits the scheduling WriteVecMaskedStore(Y) classes into four different classes (one per each variant). The new VecMaskedStore scheduling classes are now correctly marked as 'unsupported' by the bdver2 and btver2 models. No functional change intended. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D80201
-
Florian Hahn authored
-
Jay Foad authored
We already check hasNoNaNs and that x is finite and strictly positive. That only leaves the following special cases (taken from the Linux man page for pow): If x is +1, the result is 1.0 (even if y is a NaN). If the absolute value of x is less than 1, and y is negative infinity, the result is positive infinity. If the absolute value of x is greater than 1, and y is negative infinity, the result is +0. If the absolute value of x is less than 1, and y is positive infinity, the result is +0. If the absolute value of x is greater than 1, and y is positive infinity, the result is positive infinity. The first case is handled elsewhere, and this transformation preserves all the others, so there is no need to limit it to hasNoInfs. Differential Revision: https://reviews.llvm.org/D79409
-
- May 19, 2020
-
-
Fangrui Song authored
Note, we still name a preempted SharedSymbol "shared definition", instead of "reference" as printed by GNU ld. This difference should not matter. ``` // GNU ld ld.bfd: t: definition of f@v1 ld.bfd: t.so: reference to f@v1 ``` Reviewed By: psmith Differential Revision: https://reviews.llvm.org/D80143
-
mydeveloperday authored
[clang-format] @lefticus just taught the world how to use [[unlikely]] but we forgot to teach clang-format Summary: https://twitter.com/lefticus/status/1262392152950288384?s=20 Jason Turner's (@lefticus) most recent C++ weekly explains the usage of [[likely]] and [[unlikely]] in an 'if/else' context in C++ 20 clang-format leaves the code a little messy afterwards.. ``` if (argc > 5) [[unlikely]] { // ... } else if (argc < 0) [[likely]] { // ... } else [[likely]] { // ... } ``` try to improve the situation ``` if (argc > 5) [[unlikely]] { // ... } else if (argc < 0) [[likely]] { // ... } else [[likely]] { // ... } ``` Reviewed By: JakeMerdichAMD Subscribers: cfe-commits, lefticus Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D80144
-
mydeveloperday authored
[clang-format] [PR45614] Incorrectly indents [[nodiscard]] attribute funtions after a macro without semicolon Summary: https://bugs.llvm.org/show_bug.cgi?id=45614 `[[nodiscard]]` after a macro doesn't behave the same as an __attribute__ resulting in incorrect indentation This revision corrects that behavior See original Mozilla bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1629756 Before: ``` class FooWidget : public nsBaseWidget { public: FooWidget(); NS_DECL_ISUPPORTS_INHERITED [[nodiscard]] nsresult FunctionOne(); [[nodiscard]] nsresult FunctionTwo(); }; ``` After: ``` class FooWidget : public nsBaseWidget { public: FooWidget(); NS_DECL_ISUPPORTS_INHERITED [[nodiscard]] nsresult FunctionOne(); [[nodiscard]] nsresult FunctionTwo(); }; ``` Reviewed By: Abpostelnicu Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D79990
-
mydeveloperday authored
Summary: https://bugs.llvm.org/show_bug.cgi?id=44476 ```template <typename T> [[nodiscard]] int a() { return 1; }``` gets incorrectly formatted to be ```template <typename T>[[nodiscard]] int a() { return 1; }``` This revision ensure there is a space between the template and the attribute Reviewed By: JakeMerdichAMD Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D79905
-
mydeveloperday authored
Summary: https://bugs.llvm.org/show_bug.cgi?id=45942 With Chromium style (although that is not important) its just it defines PointerAligmment: Left The following arguments `S&&` are formatted differently depending on if the class has an attribute between it and the class identifier ``` class S { S(S&&) = default; }; class [[nodiscard]] S { S(S &&) = default; }; ``` The prescense of [[nodiscard]] between the `class/struct` and the `{` causes the `{` to be incorrectly seen as a `TT_FunctionLBrace` which in turn transforms all the && to be `TT_BinaryOperators` rather than `TT_PointerOrReference`, as binary operators other spacing rules come into play causing a miss format This revision resolves this by allowing the parseRecord to consider the [[nodisscard]] Reviewed By: Abpostelnicu Subscribers: cfe-commits Tags: #clang, #clang-format Differential Revision: https://reviews.llvm.org/D80008
-
Jez Ng authored
Due to build breakage mentioned in https://reviews.llvm.org/D79926. This reverts commit e270b2f1.
-
Kirill Bobyrev authored
Summary: YAML serialization was used in the Proof of Concept for simplicity. This patch replaces implements Protobuf (de) serialization of almost all types that need to be transferred over the protocol. Reviewers: sammccall Reviewed By: sammccall Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79862
-
Ehsan Toosi authored
[MLIR] Update the FunctionAndBlockSignatureConverter and NonVoidToVoidReturnOpConverter of Buffer Assignment Making these two converters more generic. FunctionAndBlockSignatureConverter now moves only memref results (after type conversion) to the function argument and keeps other legal function results unchanged. NonVoidToVoidReturnOpConverter is renamed to NoBufferOperandsReturnOpConverter. It removes only the buffer operands from the operands of the converted ReturnOp and inserts CopyOps to copy each buffer to the target function argument. Differential Revision: https://reviews.llvm.org/D79329
-
Kirstóf Umann authored
Differential Revision: https://reviews.llvm.org/D78122
-
jasonliu authored
Summary: Created AIXABIInfo and AIXTargetCodeGenInfo for AIX ABI. Reviewed By: Xiangling_L, ZarkoCA Differential Revision: https://reviews.llvm.org/D79035
-
Kirstóf Umann authored
I think anyone who added a checker config wondered why is there a need to test this. Its just a chore when adding a new config, so I removed it. To give some historic insight though, we used to not list **all** options, but only those explicitly added to AnalyzerOptions, such as the ones specified on the command line. However, past this change (and arguably even before that) this line makes little sense. There is an argument to be made against the entirety of analyzer-config.c test file, but since this commit fixes some builtbots and is landing without review, I wouldn't like to be too invasive.
-
Sam McCall authored
-
Sam McCall authored
Summary: This means they're renamable and textDocument/highlight works This fell out of D78454 Reviewers: adamcz Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80170
-
Jez Ng authored
Note that it's only used for non-pc-relative contexts. Reviewed By: MaskRay, smeenai Differential Revision: https://reviews.llvm.org/D80048
-
Jez Ng authored
This diff restores and builds upon @pcc and @ruiu's initial work on subsections. The .subsections_via_symbols directive indicates we can split each section along symbol boundaries, unless those symbols have been marked with `.alt_entry`. We exercise this functionality in our tests by using order files that rearrange those symbols. Reviewed By: smeenai Differential Revision: https://reviews.llvm.org/D79926
-
Jez Ng authored
The order file indicates how input sections should be sorted within each output section, based on the symbols contained within those sections. This diff sets the stage for implementing and testing `.subsections_via_symbols`, where we will break up InputSections by each symbol and sort them more granularly. Reviewed By: smeenai Differential Revision: https://reviews.llvm.org/D79668
-
Florian Hahn authored
The comment was referring the arguments of the call, but the recipe widens a select.
-
Alex Zinenko authored
Thanks to a recent change that made `::build` functions take an instance of `OpBuilder`, it is now possible to build operations within a region attached to the operation about to be created. Exercise this on `scf::ForOp` by taking a callback that populates the loop body while the loop is being created. Additionally, provide helper functions to build perfect nests of `ForOp`s, with support for iteration arguments. These functions provide the same functionality as EDSC LoopNestBuilder with simpler implementation, without relying on edsc::ScopedContext, and using `OpBuilder` in an unambiguous way. Compatibility functions for EDSC are provided, but may be removed in the future. Differential Revision: https://reviews.llvm.org/D79688
-
Greg McGary authored
Under `lld/test/Driver/Inputs/`, all instances of `libtest.a` are unreferenced. FYI, all of these are empty archives, and the files contain only a magic number. Reviewed By: MaskRay Differential Revision: https://reviews.llvm.org/D80182
-
Simon Pilgrim authored
Replace with MCTargetOptions forward declaration and move includes down to MCTargetOptionsCommandFlags.cpp
-
Simon Pilgrim authored
We already have to include raw_ostream.h.
-
Simon Pilgrim authored
Don't explicitly include ilist_node.h + simple_ilist.h - we already include ilist.h that include these for us and all references are in terms of that. The rest can be covered by forward declarations.
-
Valeriy Savchenko authored
Differential Revision: https://reviews.llvm.org/D80211
-
Florian Hahn authored
This patch adds VPValue version of the instruction operands to VPReplicateRecipe and uses them during code-generation. Reviewers: Ayal, gilr, rengolin Reviewed By: gilr Differential Revision: https://reviews.llvm.org/D80114
-
Sam McCall authored
-
Florian Hahn authored
We can remove a dynamic memory allocation, by checking the number of operands: no operands = all true, 1 operand = mask. Reviewers: Ayal, gilr, rengolin Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D80110
-
Matt Arsenault authored
This was assuming a select is always an instruction, which is not true.
-
Kirstóf Umann authored
[analyzer][DirectIvarAssignment] Turn DirectIvarAssignmentForAnnotatedFunctions into a checker option Since this is an alpha checker, I don't worry about backward compatibility :) Differential Revision: https://reviews.llvm.org/D78121
-
Haojian Wu authored
Summary: FieldDecl::getParent assumes that the FiledDecl::getDeclContext returns a RecordDecl, this is true for C/C++, but not for ObjCIvarDecl: The Decls hierarchy is like following FieldDecl <-- ObjCIvarDecl DeclContext <-- ObjCContainerDecl <-- ObjCInterfaceDecl ^ |----- TagDecl <-- RecordDecl calling getParent() on ObjCIvarDecl will: 1. invoke getDeclContext(), which returns a DeclContext*, which points to an ObjCInterfaceDecl; 2. then downcast the "DeclContext" pointer to a RecordDecl*, and we will hit the "is_a<RecordDecl>" assertion in llvm::cast (undefined behavior in release build without assertion enabled); Fixes https://github.com/clangd/clangd/issues/369 Reviewers: sammccall Reviewed By: sammccall Subscribers: rsmith, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79627 -
Haojian Wu authored
Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79938
-
Haojian Wu authored
Summary: Similar to property, we print the containing interface decl as the nested name specifier for ivar; otherwise we will get "::ivar_name". this would fix an assertion crash in clangd: https://github.com/clangd/clangd/issues/365 Reviewers: sammccall Reviewed By: sammccall Subscribers: ilya-biryukov, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D79576
-
George authored
Implemented tangent op from SPIR-V's GLSL extended instruction set. Added a round-trip and serialization/deserialization tests for the op. Differential Revision: https://reviews.llvm.org/D80152
-
Haojian Wu authored
Summary: With recovery expr, it is possible that we have a value-dependent expr within non-dependent context. Reviewers: sammccall, jdoerfert Subscribers: yaxunl, guansong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D80200
-
Sam Parker authored
-
Alexey Bataev authored
Summary: Added parsing/sema/serialization support for affinity clause in task directives. Reviewers: jdoerfert Subscribers: yaxunl, guansong, arphaman, llvm-commits, cfe-commits, caomhin Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D80148
-