similar to: Allowed operations for passes that report "no change"

Displaying 20 results from an estimated 1000 matches similar to: "Allowed operations for passes that report "no change""

2020 Jul 17
2
Allowed operations for passes that report "no change"
On Fri, Jul 17, 2020 at 10:52 PM Nikita Popov via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > On Fri, Jul 17, 2020 at 9:30 PM Jonathan Roelofs via llvm-dev <llvm-dev at lists.llvm.org> wrote: >> >> I’m digging through a build failure [1], and it looks like the loop idiom recognizer adds some instructions [2], and then removes them again [3]. I don’t understand
2020 Jul 20
2
Allowed operations for passes that report "no change"
> I agree. If a pass modifies the IR in any way, even temporarily, it was changed (at some point). I'd like to +1, but when doing the migration of the code base to enable the associated expensive check, I found situations where (B) was used. On Sat, Jul 18, 2020 at 5:20 AM Johannes Doerfert via llvm-dev < llvm-dev at lists.llvm.org> wrote: > > On 7/17/20 2:57 PM, Roman
2020 Jun 11
4
[RFC] Pass return status
Hi folks, Per the documentation[0], whenever an LLVM pass doesn't modify the IR it's run on, it should return `false`--it's okay to return `true` if no change happen, just less optimal. In the New PM area, this is generally translated into a `PreservedAnalyses::all()`. https://reviews.llvm.org/D80916 provides an `EXPENSIVE_CHECK` that computes a hash of the IR before and after the
2019 Aug 25
5
Illegal instruction (core dumped) LLVM 8.0
Hello, I have implemented a pass to count total number of instructions in LLVM 8.0. Its source code is attached here. The pass runs fine with LLVM 4.0. But with LLVM 8.0 following error is shown; $ $LLVMopt_BIN/opt -load $LLVM_SO/LLVMStatic-Info.so -one output-simple.bc WARNING: You're attempting to print out a bitcode file. This is inadvisable as it may cause display problems. If you REALLY
2020 Jul 15
3
[RFC] Pass return status
Hi folks, some more information on this feature - as a reminder I started one month ago to work on an expensive check that would verify that pass return status is correctly reported by passes, i.e. no pass return « IR not modified » while actually modifying it. It took ~20 pass fixes to achieve that goal, as many passes were not respectful of that contract, but as of
2020 Jul 16
2
[RFC] Pass return status
> Out of curiosity, does change here include changes to names, and other semantically-irrelevant changes (e.g., changing the order of operands in a PHI)? The hashing function used to detect changes is currently very simple: it only accounts for instruction opcode and order. So some semantically-irrelevant changes are ignored (as well as some relevant changes), and some are not. Permuting two
2016 Oct 17
2
Assertion fail/crash in X86FrameLowering::GetFrameIndexReference SEH
Hi, I'm gettign an assertion fail/crash in X86FrameLowering::GetFrameIndexReference when compiling the following bitcode: https://gist.github.com/carlokok/868cddebeb9acc8ccbac6253de0480b0 I tried removing the llvm.frameaddres calls but that's not it, where can I start looking for what my mistake here is? Code seems to verify just fine. ; #0 0x00e1afe8
2013 Dec 17
3
[LLVMdev] Trying to use patchpoint in MCJIT
Hi all, I'm trying to play with patchoint (with MCJIT and VMKit) and I don't understand something. I generate this call for my first patch point. Basically, I want to call f(0). %5 = call i64 (i64, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64( i64 42, ;; patch point id is 42 i32 0, ;; 0 bytes for the padding i8* bitcast (i32 (i32)* @f to i8*), ;; my function f i32 1,
2017 Aug 26
2
Error in generating Object Code for implemented assembly vector instructions
i want to emit binary code for the following implemented vector assembly instructions. P_256B_LOAD_DWORD R_0_R2048b_0, pword ptr [rip + b] P_256B_LOAD_DWORD R_0_R2048b_1, pword ptr [rip + c] P_256B_VADD R_0_R2048b_0, R_0_R2048b_1, R_0_R2048b_0 P_256B_STORE_DWORD pword ptr [rip + a], R_0_R2048b_0 I added the following lines in X86MCInstLower.cpp; unsigned NewOpc; switch (OutMI.getOpcode())
2015 Nov 26
4
Creating/Deleting a new instruction from LLVM IR
Hi, I was trying to create a new *Store* instruction and inserting it to LLVM IR (.ll) file. I found the following constructor in LLVM Manual: StoreInst::StoreInst <http://llvm.org/docs/doxygen/html/classllvm_1_1StoreInst.html#aa2a72f9a51b317f5b4ab8695adf59025> (Value <http://llvm.org/docs/doxygen/html/classllvm_1_1Value.html> * Val, Value
2016 Oct 19
2
Assertion fail/crash in X86FrameLowering::GetFrameIndexReference SEH
I think r262546 introduced the assumption that allocas are used exactly once with catchpad. It seems easy to fix, though. On Mon, Oct 17, 2016 at 11:51 PM, Carlo Kok via llvm-dev < llvm-dev at lists.llvm.org> wrote: > This turned out to be related to reusing the local used in the catchpad, > for example given the following c++ code: > > extern void rthrow(); > > int
2017 Feb 01
2
Strange opt error in Value ("replaceAllUses of value with new value of different type!" assertion failure)
Hello. I'm getting the following error after adding some extra instrumentation in a module (LoopVectorize.cpp ) due to a bug in Value::replaceAllUsesWith (see more comments of mine below): Value::replaceAllUsesWith(New = i16* inttoptr (i16 51 to i16*)), this = %VectorGep = getelementptr i16, i16* inttoptr (i16 51 to i16*), <128 x i64> zeroinitializer, !dbg !17 ; this
2009 Jul 20
2
[LLVMdev] LLVMContext: Who Creates It?
Dear Owen, Are passes supposed to grab the LLVMContext from the Module/Function/BasicBlock passed into their runOn<Module/Function/BasicBlock> method, or is the PassManager supposed to set the pass's Context member variable automatically? I thought it was the latter, but after an SVN update of LLVM, my passes have a NULL Context, and the LLVM code looks like the passes are all setting
2012 Dec 17
3
[LLVMdev] LoopPass doFinalization() called multiple times per program?
On Sun, Dec 16, 2012 at 7:23 AM, Duncan Sands <baldrick at free.fr> wrote: > Hi Stephen, > > > On 13/12/12 18:58, Stephen McGruer wrote: > >> I'm wondering if the documentation for LoopPass >> (http://llvm.org/docs/**WritingAnLLVMPass.html#**LoopPass<http://llvm.org/docs/WritingAnLLVMPass.html#LoopPass>) >> is misleading or >> incorrect (or
2018 Jun 30
2
Using BuildMI to insert Intel MPX instruction BNDCU failed
Hello everyone, I'm a newbie of llvm. I'm trying to insert Intel MPX instruction BNDCU with BuildMI. I add my machinefunctionpass at addPreEmitPass2. Here is the code of insertion: BuildMI(MBB, MI, DL, TII->get(X86::BNDCU64rr)).addReg(X86::BND2, RegState::Define).addReg(X86::R10); And here is to stack track when I compiler program with modified llc:
2013 Dec 18
2
[LLVMdev] Trying to use patchpoint in MCJIT
Ok I see. Of course, at runtime, it's enough for dynamic linking or for deoptimization. However, wmkit acts both as a jit and as an aot. For the aot, it means that I can not use patchpoint and that I should have two different compilation strategy. It's not so difficult, but in this case, I can not use patchpoints to generate gc's stackmap for the aot (basically, I think that I could
2017 Nov 01
2
llvm.gcroot trouble with non-i8* allocas
I'm allocating { i8*, i32 } on the stack, and would like to add this as a GC root, but I'm having trouble figuring this out. This works as expected: declare void @llvm.gcroot(i8** %ptrloc, i8* %metadata) define i8* @bar(i8* %x) gc "shadow-stack" { entry: %objptr = alloca i8* call void @llvm.gcroot(i8** %objptr, i8* null) store i8* %x, i8** %objptr %v = load i8*, i8**
2013 Dec 18
0
[LLVMdev] Trying to use patchpoint in MCJIT
patchpoint is intended to be used in VMs that do their own linking, and so you wouldn't expect the function parameter to be resolved by LLVM. Presumably, in VMKit, you could just plant a pointer constant to the function you wish to call initially? -Filip On Dec 17, 2013, at 2:42 PM, Gaël Thomas <gael.thomas00 at gmail.com> wrote: > Hi all, > > I'm trying to play with
2016 Feb 08
2
LoopIdiomRegognize vs Preserved
Hi, I'm having problems with the LoopIdiomRegognizer crashing on me with An asserting value handle still pointed to this value! UNREACHABLE executed at ../lib/IR/Value.cpp:695! If I remove AU.addPreserved<LoopInfoWrapperPass>(); or AU.addPreserved<AAResultsWrapperPass>(); everything goes well. The C-code triggering this is void foo(int a[10][10]) { int i, j,
2018 Apr 17
2
LLVM Pass Managers
Hello all, I have 2 separate questions: 1, What are the differences between *LegacyPassManager* and *PassManager*? I see that *opt* uses the former most of the times while the latter is used via *PassBuilder* API when an user wants to build her own pipeline, but I have no idea why so. What to use and when to use it is not clear to me. 2, I've asked this question once but have had no answer,