search for: oldvalue

Displaying 20 results from an estimated 34 matches for "oldvalue".

2013 May 10
4
[LLVMdev] Predicated Vector Operations
...bush001 at gmail.com> writes: > Ah, I think I get it now. This was mentioned earlier in the thread, > but it didn't click at the time. It sounds like I can do instruction > selection with a pattern like (omitting selection of the sources): > > let Constraints = "$dst = $oldvalue" in { > def MASKEDARITH : MyInstruction< > (outs VectorReg:$dst), > (ins MaskReg:$mask, VectorReg:$src1, VectorReg:$src2, > VectorReg:$oldvalue), > "add $dst {$mask}, $src1, $src2", > [(set v16i32:$dst, (vselect v16i1:$mask, (a...
2013 May 09
2
[LLVMdev] Predicated Vector Operations
...at cray.com> wrote: >> Jeff Bush <jeffbush001 at gmail.com> writes: >> >>> %tx = select %mask, %x, <0.0, 0.0, 0.0 ...> >>> %ty = select %mask, %y, <0.0, 0.0, 0.0 ...> >>> %sum = fadd %tx, %ty >>> %newvalue = select %mask, %sum, %oldvalue >>> >>> I believe the generated instructions depend on whether %oldvalue is >>> still live after the last instruction. If it is, you need to generate >>> two instructions: a copy into a new physical register then predicated >>> write to it. If it is no...
2015 Apr 30
2
búsqueda y sustitución masiva
...rl.origin$V1 es la lista de url originales (más de 15K) url.des$url1 es la lista de url originales únicas url.des$url2 es la lista de url descomprimidas equivalentes a url.des$url1 El último código con el que he probado es el siguiente pero sin buenos resultados: recoderFunc <- function(data, oldvalue, newvalue) { # convertir los factores en caracteres if (is.factor(data)) data <- as.character(data) if (is.factor(oldvalue)) oldvalue <- as.character(oldvalue) if (is.factor(newvalue)) newvalue <- as.character(newvalue) # crear el vector de retorno newvec <- data...
2013 May 10
0
[LLVMdev] Predicated Vector Operations
Ah, I think I get it now. This was mentioned earlier in the thread, but it didn't click at the time. It sounds like I can do instruction selection with a pattern like (omitting selection of the sources): let Constraints = "$dst = $oldvalue" in { def MASKEDARITH : MyInstruction< (outs VectorReg:$dst), (ins MaskReg:$mask, VectorReg:$src1, VectorReg:$src2, VectorReg:$oldvalue), "add $dst {$mask}, $src1, $src2", [(set v16i32:$dst, (vselect v16i1:$mask, (add v16i32:$src1, v16i32:$src2)...
2013 May 10
0
[LLVMdev] Predicated Vector Operations
...rites: > >> Ah, I think I get it now. This was mentioned earlier in the thread, >> but it didn't click at the time. It sounds like I can do instruction >> selection with a pattern like (omitting selection of the sources): >> >> let Constraints = "$dst = $oldvalue" in { >> def MASKEDARITH : MyInstruction< >> (outs VectorReg:$dst), >> (ins MaskReg:$mask, VectorReg:$src1, VectorReg:$src2, >> VectorReg:$oldvalue), >> "add $dst {$mask}, $src1, $src2", >> [(set v16i32:$dst, (vsel...
2013 May 11
0
[LLVMdev] Predicated Vector Operations
...writes: > >> Ah, I think I get it now. This was mentioned earlier in the thread, >> but it didn't click at the time. It sounds like I can do instruction >> selection with a pattern like (omitting selection of the sources): >> >> let Constraints = "$dst = $oldvalue" in { >> def MASKEDARITH : MyInstruction< >> (outs VectorReg:$dst), >> (ins MaskReg:$mask, VectorReg:$src1, VectorReg:$src2, >> VectorReg:$oldvalue), >> "add $dst {$mask}, $src1, $src2", >> [(set v16i32:$dst,...
2013 May 07
6
[LLVMdev] Predicated Vector Operations
...;select' is the proper way to implement predication. I believe the predicated form cannot be explicitly expressed in LLVM asm, because it is SSA. It can be done implicitly: %sum = add <16 x i32> %x, %y %newvalue = select <16 x i1> %mask, <16 x i32> %sum, <16 x i32> %oldvalue The issue becomes how to match the instruction form above in a TableGen pattern. In order for this to emit a masked instruction, %newvalue and %oldvalue must be assigned to same physical register (I'm assuming an instruction like 'add %r0{%m0} %r1 %r2') However, I don't think there...
2013 May 08
0
[LLVMdev] Predicated Vector Operations
...to > implement predication. I believe the predicated form cannot be > explicitly expressed in LLVM asm, because it is SSA. It can be done > implicitly: > > %sum = add <16 x i32> %x, %y > %newvalue = select <16 x i1> %mask, <16 x i32> %sum, <16 x i32> > %oldvalue This is not necessarily sufficient in general. For any operation that can trap (pretty much any fp operation) you also need to protect the inputs with safe values to adhere to the semantics of the LLVM IR. For an fadd, for example: %tx = select %mask, %x, <0.0, 0.0, 0.0 ...> %ty = select...
2012 Aug 16
3
[LLVMdev] error: instruction requires: thumb2
...with the following command: > clang -march=armv7-a -mfloat-abi=soft -ccc-host-triple arm-none-linux-gnueabi -integrated-as main.c -o main.o -c and get error message: ------------------------------------------------------- main.c:9:9: error: instruction requires: thumb2 "ldrex %[oldValue], [%[ptr], #0]\n" // oldValue = *ptr ^ <inline asm>:1:2: note: instantiated into assembly here ldrex r6, [r4, #0] ^ main.c:11:3: error: instruction requires: thumb2 "strexeq %[failed], %[newValue], [%[ptr], #0]\n" ^ <inline asm>:3...
2013 May 09
0
[LLVMdev] Predicated Vector Operations
...2013 at 8:10 AM, <dag at cray.com> wrote: > Jeff Bush <jeffbush001 at gmail.com> writes: > >> %tx = select %mask, %x, <0.0, 0.0, 0.0 ...> >> %ty = select %mask, %y, <0.0, 0.0, 0.0 ...> >> %sum = fadd %tx, %ty >> %newvalue = select %mask, %sum, %oldvalue >> >> I believe the generated instructions depend on whether %oldvalue is >> still live after the last instruction. If it is, you need to generate >> two instructions: a copy into a new physical register then predicated >> write to it. If it is not used, then it is ju...
2012 Aug 16
0
[LLVMdev] error: instruction requires: thumb2
...> clang -march=armv7-a -mfloat-abi=soft -ccc-host-triple arm-none-linux-gnueabi -integrated-as main.c -o main.o -c > > and get error message: > > ------------------------------------------------------- > main.c:9:9: error: instruction requires: thumb2 > "ldrex %[oldValue], [%[ptr], #0]\n" // oldValue = *ptr > ^ > <inline asm>:1:2: note: instantiated into assembly here > ldrex r6, [r4, #0] > ^ > main.c:11:3: error: instruction requires: thumb2 > "strexeq %[failed], %[newValue], [%[ptr], #0]\n" &g...
2012 Aug 16
2
[LLVMdev] error: instruction requires: thumb2
...7-a -mfloat-abi=soft -ccc-host-triple arm-none-linux-gnueabi -integrated-as main.c -o main.o -c >> >> and get error message: >> >> ------------------------------------------------------- >> main.c:9:9: error: instruction requires: thumb2 >> "ldrex %[oldValue], [%[ptr], #0]\n" // oldValue = *ptr >> ^ >> <inline asm>:1:2: note: instantiated into assembly here >> ldrex r6, [r4, #0] >> ^ >> main.c:11:3: error: instruction requires: thumb2 >> "strexeq %[failed], %[newValue], [%[...
2012 Feb 03
2
[LLVMdev] How to properly use copyValue?
Since there are no constructors for Value, how do you properly insert a new Value? If I create a pointer Value *newValue and then call AA.copyValue(oldValue, newValue), this does not work, since newValue is not allocated. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120203/44086cf5/attachment.html>
2012 Mar 08
2
[LLVMdev] Updating value from PHI
...errs()<<*II<<"\n"; PHINode *newPHIvalue = PHINode::Create(PN->getType(), 2, PN->getName().str(), splitBB->getFirstInsertionPt()); int IDX = PN->getBasicBlockIndex(splitBB); while (IDX != -1) { Value *oldValue = PN->getIncomingValue((unsigned(IDX))); PN->removeIncomingValue(IDX, false); newPHIvalue->addIncoming(oldValue, loopLatchBB); newPHIvalue->addIncoming(PN, loopHeaderBB); IDX = PN->getBasicBlockIndex(splitBB);...
2012 Feb 04
0
[LLVMdev] How to properly use copyValue?
...tors for Value, how do you properly insert a > new Value? Value is a pure base. If you want to construct a new Value, then you want to construct a global variable or instruction or argument or something in particular. > If I create a pointer Value *newValue and then call > AA.copyValue(oldValue, newValue), this does not work, since newValue is > not allocated. AA.copyValue is used to tell the AliasAnalysis that a transformation is replacing the instruction in oldValue with newValue, so AA should update its internal tables. (Note that BasicAA and TBAA don't have internal tables,...
2012 Aug 16
0
[LLVMdev] error: instruction requires: thumb2
...cc-host-triple arm-none-linux-gnueabi -integrated-as main.c -o main.o -c >>> >>> and get error message: >>> >>> ------------------------------------------------------- >>> main.c:9:9: error: instruction requires: thumb2 >>> "ldrex %[oldValue], [%[ptr], #0]\n" // oldValue = *ptr >>> ^ >>> <inline asm>:1:2: note: instantiated into assembly here >>> ldrex r6, [r4, #0] >>> ^ >>> main.c:11:3: error: instruction requires: thumb2 >>> "strexeq %[faile...
2012 Feb 05
1
[LLVMdev] How to properly use copyValue?
...>> new Value? >> > > Value is a pure base. If you want to construct a new Value, then you want > to construct a global variable or instruction or argument or something in > particular. > > > If I create a pointer Value *newValue and then call >> AA.copyValue(oldValue, newValue), this does not work, since newValue is >> not allocated. >> > > AA.copyValue is used to tell the AliasAnalysis that a transformation is > replacing the instruction in oldValue with newValue, so AA should update > its internal tables. (Note that BasicAA and TBAA do...
2007 Oct 03
4
form_remote_tag :onsubmit not working.
Hi, Has anyone successfully implemented the :onsubmit option for form_remote_tag. It doesn''t seem to work for me. Is there any specific version of rails which is required for the same. Here''s my piece of code. <script> function set_tojid(){ alert(''onsubmit''); } </script> <%= form_remote_tag :update => '''', :url => {
2012 Mar 08
0
[LLVMdev] Updating value from PHI
...lt;"\n"; > PHINode *newPHIvalue = PHINode::Create(PN->getType(), 2, > PN->getName().str(), splitBB->getFirstInsertionPt()); > int IDX = PN->getBasicBlockIndex(splitBB); > while (IDX != -1) { > Value *oldValue = PN->getIncomingValue((unsigned(IDX))); > PN->removeIncomingValue(IDX, false); > newPHIvalue->addIncoming(oldValue, loopLatchBB); > newPHIvalue->addIncoming(PN, loopHeaderBB); > IDX = PN->getBasicBlo...
2013 Jan 18
0
[LLVMdev] simple optimization question
Hi Bjorn, > currently the following two lines of code with integer variables get compiled completely differently: > > if (d0<tmp) d0=tmp; there must be something else going on because this void bar(int); void foo(int d0, int tmp) { if (d0 < tmp) d0=tmp; bar(d0); } when compiled like this clang -S -O4 -o - sel.c gives this define void @foo(i32 %d0, i32 %tmp) nounwind