search for: aggressiveinstcombine

Displaying 10 results from an estimated 10 matches for "aggressiveinstcombine".

2020 May 18
2
Use Galois field New Instructions (GFNI) to combine affine instructions
...s://pastebin.com/2zFU7J6g (interesting things happened at line 67) If, like me, you don't have a GFNI-enabled CPU, you can use Intel SDE [4] to run the compiled code. The code of the pass is available here: https://github.com/aguinet/llvm-project/blob/feature/gfni_combine/llvm/lib/Transforms/AggressiveInstCombine/AffineExprCombine.cpp And there are test cases here: https://github.com/aguinet/llvm-project/tree/feature/gfni_combine/llvm/test/Transforms/AggressiveInstCombine (aec_*.ll) Questions ========= The high-level view of the algorithm is the following: a) gather, from a basic block, suites of instru...
2020 May 18
2
Use Galois field New Instructions (GFNI) to combine affine instructions
On 5/18/20 8:24 PM, Craig Topper wrote: > I can tell you that your avx512 issue is that v64i8 gfni instructions also > require avx512bw to be enabled to make v64i8 a supported type. The C > intrinsics handling in the front end know this rule. But since you > generated your own intrinsics you bypassed that. Indeed that's the issue... I was stick with what Intel announces here
2018 Feb 21
1
Finding and replacing instruction patterns
...h new PIM instructions. However, if there's a better tool, or if LLVM is just purely the wrong tool, please tell me. 2. Is there a standard way to do this sort of "pattern matching" in LLVM, e.g. finding load-load-op-store patterns? I found the InstCombinePass class and AggressiveInstCombine directory, which seems to be very close to what I need. I even see mention of "pattern matching" in these files. However, I'm confused as to whether there is a standard way to write patterns and replacements (e.g. specifying that load-load-op-store gets replaced with cache...
2019 Apr 18
3
Opt plugin linkage
...; Error:"<<errStr<<"\n"; delete ee; errs() << "Hello: "; errs().write_escaped(F.getName()) << '\n'; return false; } ``` Modified opt's CMakeLists.txt: ``` set(LLVM_LINK_COMPONENTS ${LLVM_TARGETS_TO_BUILD} AggressiveInstCombine Analysis BitWriter CodeGen Core MC MCJIT Object OrcJIT Interpreter RuntimeDyld Coroutines IPO IRReader InstCombine Instrumentation MC ObjCARCOpts ScalarOpts Support Target TransformUtils Vectorize Passes ExecutionEngine ) # Support plugins. set(LLV...
2019 Apr 16
2
Opt plugin linkage
Hey: I spent sometime debugging this, it seems like editing ``llvm/tools/opt.cpp`` and move ``cl::ParseCommandLineOptions(argc, argv, "llvm .bc -> .bc modular optimizer and analysis printer\n");`` to the beginning of main() solved it for me. I'm not sure if this is a bug on LLVM side Zhang ------------------ Original ------------------ From: "Viktor Was BSc via
2018 Jan 29
0
LLVM Weekly - #213, Jan 29th 2018
...s.llvm.org/rL323155). * New documentation has been added on adding exception handling support for a target. [r323311](http://reviews.llvm.org/rL323311). * A new utility has been written which uses bugpoint to reduce failures in GlobalISel tests. [r323248](http://reviews.llvm.org/rL323248). * The AggressiveInstCombine pass has been introduced. This differs from InstCombine in that it can contain optimisations with greater than O(1) complexity. [r323321](http://reviews.llvm.org/rL323321). * A series of refactoring patches have enabled false dependencies for X86 POPCNT, LZCN and TZCNT to be broken. [r323096](http...
2018 Dec 30
3
[cfe-dev] Portable multiplication 64 x 64 -> 128 for int128 reimplementation
_mulx_u64 only exists when the target is x86_64. That's still not very portable. I'm not opposed to removing the bmi2 check, but gcc also has the same check so it doesn't improve portability much. ~Craig On Sat, Dec 29, 2018 at 4:44 PM Arthur O'Dwyer via llvm-dev < llvm-dev at lists.llvm.org> wrote: > Hi Pawel, > > There is the _mulx_u64 intrinsic, but it
2018 May 12
0
more reassociation in IR
On 05/11/2018 08:40 PM, Daniel Berlin via llvm-dev wrote: > > > On Fri, May 11, 2018 at 2:37 PM, Hiroshi Yamauchi <yamauchi at google.com > <mailto:yamauchi at google.com>> wrote: > > > > On Thu, May 10, 2018 at 12:49 PM Daniel Berlin > <dberlin at dberlin.org <mailto:dberlin at dberlin.org>> wrote: > > > > On Thu, May
2018 May 12
3
more reassociation in IR
On Fri, May 11, 2018 at 2:37 PM, Hiroshi Yamauchi <yamauchi at google.com> wrote: > > > On Thu, May 10, 2018 at 12:49 PM Daniel Berlin <dberlin at dberlin.org> > wrote: > >> >> >> On Thu, May 10, 2018 at 12:05 PM, Hiroshi Yamauchi <yamauchi at google.com> >> wrote: >> >>> >>> >>> On Wed, May 9, 2018 at 8:24
2019 Apr 30
6
Disk space and RAM requirements in docs
...al/CMakeFiles/PollyISL.dir 8.0M build/tools/clang/tools/clang-rename/CMakeFiles/clang-rename.dir 8.0M build/tools/clang/tools/clang-rename/CMakeFiles 8.0M build/tools/clang/tools/clang-rename 8.0M build/tools/clang/test/Driver/Output 8.0M build/tools/clang/lib/FrontendTool 8.0M build/lib/Transforms/AggressiveInstCombine/CMakeFiles/LLVMAggressiveInstCombine.dir 8.0M build/lib/Transforms/AggressiveInstCombine/CMakeFiles 8.0M build/lib/Transforms/AggressiveInstCombine 7.9M build/tools/llvm-rc/CMakeFiles/llvm-rc.dir 7.9M build/tools/llvm-rc/CMakeFiles 7.9M build/tools/llvm-rc 7.9M build/tools/llc/CMakeFiles 7.9M build...