search for: eliminate

Displaying 20 results from an estimated 9087 matches for "eliminate".

2010 May 19
2
[LLVMdev] Intrinsics and dead instruction/code elimination
...>> ... >> %res2 = call {i32, i1} @llvm.*.with.overflow.i32(i32 %a, i32 %b) >> %sum2 = extractvalue {i32, i1} %res, 0 >> %obit2 = extractvalue {i32, i1} %res, 1 >> store i32 %obit2, i32* @global >> } >> >> then I assume an optimisation pass is able to eliminate the store i32 %obit1, i32* @global, since store i32 %obit2, i32* @global clearly clobbers the global without any interleaving load/access. However, my question is whether representing code as an intrinsic limits further dead instruction/code elimination. In this case, the intrinsic will produce an...
2010 May 19
2
[LLVMdev] Intrinsics and dead instruction/code elimination
...tractvalue {i32, i1} %res, 1 store i32 %obit1, i32* @global ... %res2 = call {i32, i1} @llvm.*.with.overflow.i32(i32 %a, i32 %b) %sum2 = extractvalue {i32, i1} %res, 0 %obit2 = extractvalue {i32, i1} %res, 1 store i32 %obit2, i32* @global } then I assume an optimisation pass is able to eliminate the store i32 %obit1, i32* @global, since store i32 %obit2, i32* @global clearly clobbers the global without any interleaving load/access. However, my question is whether representing code as an intrinsic limits further dead instruction/code elimination. In this case, the intrinsic will produce an...
2011 Oct 06
2
[LLVMdev] A potential bug
Hi all, There might be a bug in DeadStoreElimination.cpp. This pass eliminates stores backwards aggressively in an end BB. It does not check dependencies on stores in an end BB though. For example, in this code snippet: ... 1. %sum.safe_r47.pre-phi = phi i64* [ %sum.safe_r47.pre, %entry.for.end_crit_edge ], [ %sum.safe_r42, %for.body ] 2. %call9 = call i32 @gettimeofday(...
2012 Sep 12
3
[LLVMdev] dead store elimination with external functions
Here is an llvm ir of a module. It seems that "b1" should be eliminated by dead store elimination. But it did not. Could anyone explain why and how "b1" can be eliminated? Thanks, -Peng %0 = type { [3 x [1 x i32]] } declare %0 @external_fcn3(i32, i32, i32, i32, [3 x [1 x i32]]*) define i32 @f3(i32 %a) readnone { entry: %b1 = alloca [3 x [1 x i32]]...
2007 Jan 04
4
[LLVMdev] Effective Sign Extension Elimination
Hey all, Now that we have sign/zero extensions, have people given thought to the elimination of these? There's a paper I downloaded a few years ago called "Effective Sign Extension Elimination" by M. Kawahito, H. Komatsu, and T. Nakatani. I only have a dead tree copy of it, though. But I can share it as much as I can. -bw
2010 May 19
0
[LLVMdev] Intrinsics and dead instruction/code elimination
...e i32 %obit1, i32* @global > ... > %res2 = call {i32, i1} @llvm.*.with.overflow.i32(i32 %a, i32 %b) > %sum2 = extractvalue {i32, i1} %res, 0 > %obit2 = extractvalue {i32, i1} %res, 1 > store i32 %obit2, i32* @global > } > > then I assume an optimisation pass is able to eliminate the store i32 %obit1, i32* @global, since store i32 %obit2, i32* @global clearly clobbers the global without any interleaving load/access. However, my question is whether representing code as an intrinsic limits further dead instruction/code elimination. In this case, the intrinsic will produce an...
2019 Sep 02
2
virtual subregister liveness?
On Fri, 2019-08-30 at 10:03 -0700, Quentin Colombet wrote: > > On Aug 30, 2019, at 8:31 AM, Jesper Antonsson via llvm-dev < > > llvm-dev at lists.llvm.org> wrote: > > > > Hi, > > > > After dead-mi-elimination I'm experiencing a machine verifier > > failure > > at this virtual subregister write: > > > > %5.sub1 = COPY undef
2011 Oct 06
2
[LLVMdev] A potential bug
On Thu, Oct 6, 2011 at 2:20 PM, Eli Friedman <eli.friedman at gmail.com> wrote: > On Thu, Oct 6, 2011 at 2:12 PM, Zeng Bin <ezengbin at gmail.com> wrote: >> Hi all, >> >> There might be a bug in DeadStoreElimination.cpp. This pass eliminates >> stores backwards aggressively in an end BB. It does not check dependencies >> on stores in an end BB though. For example, in this code snippet: >>   ... >> 1.  %sum.safe_r47.pre-phi = phi i64* [ %sum.safe_r47.pre, >> %entry.for.end_crit_edge ], [ %sum.safe_r42, %fo...
2012 Sep 12
0
[LLVMdev] dead store elimination with external functions
Hi Peng, > Here is an llvm ir of a module. It seems that "b1" should be eliminated by dead > store elimination. But it did not. > > Could anyone explain why and how "b1" can be eliminated? > > Thanks, > -Peng > > %0 = type { [3 x [1 x i32]] } > > declare %0 @external_fcn3(i32, i32, i32, i32, [3 x [1 x i32]]*) > > define i32 @f3(i32...
2010 May 19
0
[LLVMdev] Intrinsics and dead instruction/code elimination
...tion will ignore them. Dead code elimination will delete the intrinsic if it is dead etc. > > I understand that dead code elimination is able to delete the intrinsic if it is dead. What I'm interested in is whether or not, despite the entire intrinsic not being dead, anything is able to eliminate the setcc on overflow instruction part of the first intrinsic given that the store of obit1 is dead, thus obit1 is not needed, thus extracting the overflow bit from the CFLAGS register via a setcc instruction is no longer needed. I assume nothing is able to perform such optimisation on intrinsics a...
2010 Oct 05
3
[LLVMdev] [LLVMDev] Phi elimination: Who does what
Aye, between all current register allocators the 'AU.addRequiredID(PHIEliminationID);' will cause phi's to be eliminated to copies, but this misses the point of my question. What I am asking, is how does stack know that the value of the variable which the resulting value of the phi is currently allocated at. For instance take the instruction: Machine Basic Block (mbb) 12 reg16666 = phi reg17777 (mbb 10), reg18888...
2010 May 19
1
[LLVMdev] Intrinsics and dead instruction/code elimination
...l ignore them. Dead code elimination will delete the intrinsic if it is dead etc. >> >> I understand that dead code elimination is able to delete the intrinsic if it is dead. What I'm interested in is whether or not, despite the entire intrinsic not being dead, anything is able to eliminate the setcc on overflow instruction part of the first intrinsic given that the store of obit1 is dead, thus obit1 is not needed, thus extracting the overflow bit from the CFLAGS register via a setcc instruction is no longer needed. I assume nothing is able to perform such optimisation on intrinsics a...
2007 Jan 04
0
[LLVMdev] Effective Sign Extension Elimination
On Thu, 4 Jan 2007, Bill Wendling wrote: > Now that we have sign/zero extensions, have people given thought to > the elimination of these? There's a paper I downloaded a few years > ago called "Effective Sign Extension Elimination" by M. Kawahito, H. > Komatsu, and T. Nakatani. Sign extension elimination is most useful in the backend, when targeting processors like
2010 Oct 05
2
[LLVMdev] [LLVMDev] Phi elimination: Who does what
When doing phi elimination, does one have to communicate with the stack space at all? The problem I see is two distinctly different registers may have two distinctly different stack spaces. When these registers are combined in a phi, the values the registers point to needs to be moved, combined, or otherwise taken care of. I understand this is the job of the stack space colorer, but when doing phi
2011 Oct 06
0
[LLVMdev] A potential bug
On Thu, Oct 6, 2011 at 2:12 PM, Zeng Bin <ezengbin at gmail.com> wrote: > Hi all, > > There might be a bug in DeadStoreElimination.cpp. This pass eliminates > stores backwards aggressively in an end BB. It does not check dependencies > on stores in an end BB though. For example, in this code snippet: >   ... > 1.  %sum.safe_r47.pre-phi = phi i64* [ %sum.safe_r47.pre, > %entry.for.end_crit_edge ], [ %sum.safe_r42, %for.body ] > 2.  %c...
2019 Aug 30
2
virtual subregister liveness?
Hi, After dead-mi-elimination I'm experiencing a machine verifier failure at this virtual subregister write: %5.sub1 = COPY undef %11 The machine verifier essentially complains that the rest of the register is undefined (a subregister write implies a "read" of the other parts). So the problem is that dead-mi-elimination has removed the previously existing defines of %5.sub0.
2012 Feb 22
2
[LLVMdev] Eliminating copies between overlapping register classes
Hi, I have two register classes A and B, where A contains a subset of the registers in B: A = [R0, R1, R2, ... R128] B = [RO, R1, R2, ... R128, T0, T1, T2, ... T128] I am using the Greedy Register Allocator, and I would expect the register allocator to eliminate this copy: %vreg0<def> = COPY %vreg1; B:%vreg0 A:%vreg1 but instead I end up with %R0<def> = COPY %R1 Is there any way I can get the register allocator to eliminate these kinds of copies? Thanks, Tom
2005 Nov 09
3
Eliminate old kernels
Hi. Is there any commad for eliminate old kernels from grub instead of edit manually grub.conf and eliminate the files from /boot? Iago. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.centos.org/pipermail/centos/attachments/20051109/36a7fafa/attachment.html>
2012 Apr 23
2
[LLVMdev] Eliminating the 'void' type
Hello Chris The general concept is to replace void with {}. Void is a weird type in >> that it is only allowed as the return value of functions and as the type of >> instructions like store. It seems better (though also not particularly >> high priority) to eliminate it to make the type system more consistent. >> > MVT::isVoid and Type::VoidTyID (getVoidTy) have equivalent relation in LLVM. I am wondering to know whether the relation becomes MVT::isVoid corresponding to { } If eliminating void type? Thanks a lot Mitnick -------------- next part ----...
2010 Oct 05
0
[LLVMdev] [LLVMDev] Phi elimination: Who does what
At the moment, phi elimination happens before register allocation, so there can be no phis between memory locations. Cameron On Oct 5, 2010, at 4:19 PM, Jeff Kunkel wrote: > When doing phi elimination, does one have to communicate with the > stack space at all? The problem I see is two distinctly different > registers may have two distinctly different stack spaces. When these >