search for: foldable

Displaying 20 results from an estimated 43 matches for "foldable".

2017 Apr 10
2
LSR
Hi, I find that LSR is not helping enough on avoiding unfoldable offsets for SystemZ. When the loop has three stores with unfoldable offsets, LSR rewrites the IV in a good way. However, if adding another store with a foldable offset that fits already, LSR fails to rewrite the three stores. And if I happen to add a too big *positive* offset (the first three w...
2024 Mar 20
0
foldable e-bicycle from our warehouse
An HTML attachment was scrubbed... URL: <http://alioth-lists.debian.net/pipermail/pkg-xen-devel/attachments/20240320/7d2720d3/attachment.htm>
2004 Jun 07
0
[LLVMdev] X86: copyConstantToRegister
...should be possible > to just fold the expression and copy immediate "3" into a register. > > I must be missing something, but what? LLVM constant expressions are used when it is not possible to fold the constant. In particular expressions like "10/0" are not constant foldable (so it must be evaluated at runtime), and link-time constants are not foldable... stuff like: int X; int Y; int Z = (int)&X-(int)&Y; Yes, this is gross and disturbing, but we do support it. Constant expressions are the reason why there is a separation in the X86 isel between the "vis...
2004 Jun 07
2
[LLVMdev] X86: copyConstantToRegister
Hello, looking at X86 codegen, I see this: void ISel::copyConstantToRegister(MachineBasicBlock *MBB, MachineBasicBlock::iterator IP, Constant *C, unsigned R) { if (ConstantExpr *CE = dyn_cast<ConstantExpr>(C)) { ..... case Instruction::Add: emitSimpleBinaryOperation(MBB, IP, CE->getOperand(0),
2016 Feb 25
3
Possible soundness issue with available_externally (split from "RFC: Add guard intrinsics")
...n't merge all the LTO objs into a single massive obj like we did. For non-LTO compiles: block bottom-up propagation of facts that depend on optimization levels -- eg register kills and parameter usage summaries. Allow other IP information to flow upwards, since at least in our world all comdat-foldable definitions are supposed to be "equivalent". Requires some discipline so you are confident you know how information is derived. We would also error out if foldable definitions did not appear to be equivalent. I think we at least wrote the code to do some sanity checking. Maybe we never t...
2019 Nov 14
2
imm COPY generated by PHI elim not propagated
In this case the load imm is foldable into the copy, once converted to a mov. Directly folding this would be 4 v_mov_b32 instead of 5 produced currently -Matt On 11/14/19, 07:20, "llvm-dev on behalf of Quentin Colombet via llvm-dev" <llvm-dev-bounces at lists.llvm.org on behalf of llvm-dev at lists.llvm.org> wrote:...
2016 Feb 25
0
Possible soundness issue with available_externally (split from "RFC: Add guard intrinsics")
..., Andy Ayers <andya at microsoft.com> wrote: > For non-LTO compiles: block bottom-up propagation of facts that > depend on optimization levels -- eg register kills and parameter usage > summaries. Allow other IP information to flow upwards, since at least > in our world all comdat-foldable definitions are supposed to be > "equivalent". Requires some discipline so you are confident you know > how information is derived. For Phoenix, what kinds of things constituted "other IP information"? -- Sanjoy
2004 Jun 08
1
[LLVMdev] X86: copyConstantToRegister
...old the expression and copy immediate "3" into a > > register. > > > > I must be missing something, but what? > > LLVM constant expressions are used when it is not possible to fold the > constant. In particular expressions like "10/0" are not constant foldable > (so it must be evaluated at runtime), and link-time constants are not > foldable... stuff like: > > int X; > int Y; > int Z = (int)&X-(int)&Y; > > Yes, this is gross and disturbing, but we do support it. Constant > expressions are the reason why there is a separ...
2007 Dec 14
0
[LLVMdev] Obfuscation Transformations Clobbered by Unkown Optimizations
...ugh llc > to produce x86 assembly, the obfuscations vanish. I manually disabled llc does a lot of transformations implicitly, including constant folding, as anton says. There is no way to disable some of these, pieces of the code generator work under the assumption that it can generate "foldable" constants and that they will get folded. > all of the suspicious transformation passes run by llc, and nothing > changes. The same things happens if I run llvm-ld -native > -disable-opt. > Does anybody know what pass is clobbering my obfuscations? If you really want to guarante...
2016 Feb 25
2
Possible soundness issue with available_externally (split from "RFC: Add guard intrinsics")
...ndy Ayers <andya at microsoft.com> wrote: > For non-LTO compiles: block bottom-up propagation of facts that depend > on optimization levels -- eg register kills and parameter usage > summaries. Allow other IP information to flow upwards, since at least > in our world all comdat-foldable definitions are supposed to be > "equivalent". Requires some discipline so you are confident you know > how information is derived. For Phoenix, what kinds of things constituted "other IP information"? -- Sanjoy
2014 Nov 03
2
[PATCH v4 10/10] x86: Support compiling out userspace IO (iopl and ioperm)
...ll, that would only work for init_tss_io, not anything else. > Even then, that would only work with a zero-size array left around in > tss_struct, which doesn't seem appropriate. The remaining ifdefs wrap > code that GCC could not constant-fold away, and making that code > constant-foldable seems significantly more invasive than the ifdefs. OK
2014 Nov 03
2
[PATCH v4 10/10] x86: Support compiling out userspace IO (iopl and ioperm)
...ll, that would only work for init_tss_io, not anything else. > Even then, that would only work with a zero-size array left around in > tss_struct, which doesn't seem appropriate. The remaining ifdefs wrap > code that GCC could not constant-fold away, and making that code > constant-foldable seems significantly more invasive than the ifdefs. OK
2019 Nov 15
2
imm COPY generated by PHI elim not propagated
...at apple.com> wrote: > That sounds like the folding could be done when you expand the copy in > expand pseudo after regalloc. > > > On Nov 14, 2019, at 12:20 AM, Arsenault, Matthew < > Matthew.Arsenault at amd.com> wrote: > > > > In this case the load imm is foldable into the copy, once converted to a > mov. Directly folding this would be 4 v_mov_b32 instead of 5 produced > currently > > > > -Matt > > > > On 11/14/19, 07:20, "llvm-dev on behalf of Quentin Colombet via > llvm-dev" <llvm-dev-bounces at lists.llvm.org...
2019 Nov 20
2
imm COPY generated by PHI elim not propagated
...t;> That sounds like the folding could be done when you expand the copy in >> expand pseudo after regalloc. >> >> > On Nov 14, 2019, at 12:20 AM, Arsenault, Matthew < >> Matthew.Arsenault at amd.com> wrote: >> > >> > In this case the load imm is foldable into the copy, once converted to >> a mov. Directly folding this would be 4 v_mov_b32 instead of 5 produced >> currently >> > >> > -Matt >> > >> > On 11/14/19, 07:20, "llvm-dev on behalf of Quentin Colombet via >> llvm-dev" <llvm-d...
2014 Sep 18
2
[LLVMdev] RAUW in shift-and reassociation during X86 ISel
Hi Dan, I am trying to understand the change you made in http://llvm.org/viewvc/llvm-project?view=revision&revision=57465 In order to understand the details, I tried to revert the change but the test case still passes which is not very surprising after 6 years :(. I am seeing a related new bug that causes a load that was stashed on the NodeStack and in RecordedNodes during iSel to get
2017 Jul 23
2
[X86] Memory folding tables in x86 backend
> On 23 Jul 2017, at 12:19, Joerg Sonnenberger via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > On Sun, Jul 23, 2017 at 08:48:00AM +0000, Musa, Ayman via llvm-dev wrote: >> 3- Give up on the auto-generation idea and manually update the current tables iteratively with new chunks of instructions until full state is achieved. >> >> P.s. The TableGen backend
2016 Feb 25
0
Possible soundness issue with available_externally (split from "RFC: Add guard intrinsics")
...dya at microsoft.com> wrote: >> For non-LTO compiles: block bottom-up propagation of facts that depend >> on optimization levels -- eg register kills and parameter usage >> summaries. Allow other IP information to flow upwards, since at least >> in our world all comdat-foldable definitions are supposed to be >> "equivalent". Requires some discipline so you are confident you know >> how information is derived. > > For Phoenix, what kinds of things constituted "other IP information"? > > -- Sanjoy > ________________________...
2007 Dec 13
4
[LLVMdev] Obfuscation Transformations Clobbered by Unkown Optimizations
Hello all, I am implementing some simple obfuscation transformations in LLVM. One of the obfuscations involves searching for particular constants, and "unrolling" them throughout a procedure using arithmetic. In effect, certain constants are broken up into smaller constants and recombined as needed using the appropriate operators. I perform this on intermediate LLVM instructions. After
2016 Feb 25
0
Possible soundness issue with available_externally (split from "RFC: Add guard intrinsics")
Couple of other examples: void @foo(i32* %ptr) available_externally { %discard = load i32, i32* %ptr } void bar() { call @foo(i32* %x) } ==> void @foo(i32* %ptr) available_externally { } void bar() { call @foo(i32* %x) } ==> void @foo(i32* %ptr) available_externally { } void bar() { call @foo(i32* undef) ;; non optimized @foo will crash } ;;
2018 May 10
0
more reassociation in IR
...specifically which part you would like to know about ;) > ​Maybe I misunderstood what you meant by "This is fixable". Did you mean that we won't somehow need to fixpoint between instcombine and reassociate, or that the specific motivating examples from the above differentials are foldable without fixpointing? If the latter, that may be the case. The concern was that we may encounter examples that may need many more iterations, if not fixpointing. As long as it's feasible to fixpoint between instcombine and reassociate, it seems to work, but I guess that would probably need some...