search for: isnotduplicable

Displaying 13 results from an estimated 13 matches for "isnotduplicable".

2019 Feb 12
3
[RFC] Potential extension to asm statement functionality
...ment. There are a couple of different approaches that could be taken to implement this: 1. Parse the content of the assembly string argument to the asm statement in the compiler front-end (during EmitAsmStmt(), for example) to determine if it contains a label definition, and if it does set the isNotDuplicable flag on the INLINEASM record that is created to represent the asm statement in the IR. To date, there is no precedence for processing the content of the assembly string argument until the asm statement is invoked before the integrated assembler starts processing the generated machine code. 2. A...
2019 Feb 14
3
[RFC] Potential extension to asm statement functionality
...E: [llvm-dev] [RFC] Potential extension to asm statement functionality The proposed "lbl" constraint below: __asm __volatile__ ("\t.global\t%0\n%0:\n" : "lbl" (my_hook_fcn)); is not quite a "No Touchie!" constraint, but it does allow the user to set the isNotDuplicable flag on the INLINEASM that comes out of the asm statement in order to circumvent optimizations like Tail Duplication. But setting the isNotDuplicable flag is not really enough. If the function that contains the "lbl" constrained asm statement is inlined into a function in the same compil...
2019 Feb 12
2
[RFC] Potential extension to asm statement functionality
...t. There are a couple of different approaches that could be taken to implement this: 1. Parse the content of the assembly string argument to the asm statement in the compiler front-end (during EmitAsmStmt(), for example) to determine if it contains a label definition, and if it does set the isNotDuplicable flag on the INLINEASM record that is created to represent the asm statement in the IR. To date, there is no precedence for processing the content of the assembly string argument until the asm statement is invoked before the integrated assembler starts processing the generated machine code. 2....
2010 Jun 24
0
[LLVMdev] How to prevent an instruction to be executed more than once?
On Jun 24, 2010, at 7:00 AMPDT, Xinfinity wrote: > > I need to mark the beginning of some regions of code, that I want to > patch at > runtime. > In this case, I want to mark the beginning of BB4 and then to patch > the > jumps, because I want to temporarily change the flow at runtime and > then to > restore the previous version. > > In order to patch, I
2010 Jun 24
2
[LLVMdev] How to prevent an instruction to be executed more than once?
I need to mark the beginning of some regions of code, that I want to patch at runtime. In this case, I want to mark the beginning of BB4 and then to patch the jumps, because I want to temporarily change the flow at runtime and then to restore the previous version. In order to patch, I need to know the exact structure of the generated code. So, I might have a BasicBlock like: BB4: call void asm
2011 Apr 16
0
[LLVMdev] How to prevent duplication of function calls?
This came up a long time ago, but I'm not sure what the resolution was: http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-October/026312.html There's also TID::isNotDuplicable: http://llvm.org/docs/doxygen/html/classllvm_1_1TargetInstrDesc.html#ab05b074805f22503828b5b625d437f3a I don't know enough about LLVM's backend to say if you can get that on an intrinsic. Reid On Thu, Apr 14, 2011 at 5:24 PM, Dmitry Denisenko <DDENISEN at altera.com> wrote: > He...
2016 Nov 27
5
Extending Register Rematerialization
...ite operation on the full virtual register which cannot be // moved safely. if (TargetRegisterInfo::isVirtualRegister(DefReg) && MI.getOperand(0).getSubReg() && MI.readsVirtualRegister(DefReg)) return false; // Avoid instructions obviously unsafe for remat. if (MI.isNotDuplicable() || MI.mayStore() || MI.hasUnmodeledSideEffects()) return false; // Don't remat inline asm. We have no idea how expensive it is // even if it's side effect free. if (MI.isInlineAsm()) return false; } We have following doubts and require guidance and suggestion to move ahead...
2011 Apr 18
2
[LLVMdev] How to prevent duplication of function calls?
..., 2011 2:33 PM To: Dmitry Denisenko Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] How to prevent duplication of function calls? This came up a long time ago, but I'm not sure what the resolution was: http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-October/026312.html There's also TID::isNotDuplicable: http://llvm.org/docs/doxygen/html/classllvm_1_1TargetInstrDesc.html#ab05b074805f22503828b5b625d437f3a I don't know enough about LLVM's backend to say if you can get that on an intrinsic. Reid On Thu, Apr 14, 2011 at 5:24 PM, Dmitry Denisenko <DDENISEN at altera.com> wrote: > He...
2011 Apr 14
2
[LLVMdev] How to prevent duplication of function calls?
Hello, Is it possible to prevent duplication of call sites for specific functions (while still maintaining -O3 optimization level)? For example, the following C code: ------------------ if (cond1) a=2; llvm.memory.barrier(...); ------------------ is turned by clang with -O2 into something like this: ------------------ if (cond1) a=2; llvm.memory.barrier(...); else
2011 Apr 18
0
[LLVMdev] How to prevent duplication of function calls?
...> Cc: llvmdev at cs.uiuc.edu > Subject: Re: [LLVMdev] How to prevent duplication of function calls? > > This came up a long time ago, but I'm not sure what the resolution was: > http://lists.cs.uiuc.edu/pipermail/llvmdev/2009-October/026312.html > > There's also TID::isNotDuplicable: > http://llvm.org/docs/doxygen/html/classllvm_1_1TargetInstrDesc.html#ab0 > 5b074805f22503828b5b625d437f3a > > I don't know enough about LLVM's backend to say if you can get that on > an intrinsic. > > Reid > > On Thu, Apr 14, 2011 at 5:24 PM, Dmitry Denisenko...
2008 Apr 27
2
[LLVMdev] Questions for new Backend
...ss = 0; // see question 1 bit isCommutable = 0; // see rq1 below bit isTerminator = 0; // terminate what? A BB, A function, or the program bit isReMaterializable = 0; // ? bit isPredicable = 0; bit hasDelaySlot = 0; bit usesCustomDAGSchedInserter = 0; bit hasCtrlDep = 0; // ? bit isNotDuplicable = 0; // ? bit hasSideEffects = 0; bit mayHaveSideEffects = 0; // how is this different from has side effect? bit neverHasSideEffects = 1; Rq1: If I have a instruction 'add reg, imm' and don't have 'add imm, reg' I suppose the instruction isn't commutable? 3) For con...
2012 Nov 01
0
[LLVMdev] : Predication on SIMD architectures and LLVM
On Wed, Oct 31, 2012 at 09:13:43PM +0100, Bjorn De Sutter wrote: > Hi all, > > I am working on a CGRA backend (something like a 2D VLIW), and we also absolutely need predication. I extended the IfConversion pass to allow it to be executed multiple times and to predicate already predicated code. This is necessary to predicate code with nested conditional statements. At this point, we
2012 Oct 31
3
[LLVMdev] : Predication on SIMD architectures and LLVM
Hi all, I am working on a CGRA backend (something like a 2D VLIW), and we also absolutely need predication. I extended the IfConversion pass to allow it to be executed multiple times and to predicate already predicated code. This is necessary to predicate code with nested conditional statements. At this point, we support or, and, and conditional predicates (see Scott Mahlke's papers on this