search for: ckaddr

Displaying 4 results from an estimated 4 matches for "ckaddr".

Did you mean: kaddr
2011 Jul 08
4
[LLVMdev] Missed optimization with indirectbr terminator
...to go to a specific successor. The only way to split an > indirect goto is to insert code before the jump which checks for a > specific destination address. This is very likely to be a pessimization. Do you mean like turning a indirectbr %addr, [%a, %b, ...] into a switch %addr, undef, [blockaddr(%a), %a], [blo ckaddr(%b), %b], ... ? (I know that the switch doesn't accept a pointer as first argument, it's just an example) > To answer your original question, the current implementation design > for indirect goto is intentionally based around having a single block > that ter...
2011 Jul 07
0
[LLVMdev] Missed optimization with indirectbr terminator
On Jul 7, 2011, at 4:33 AM, Carlo Alberto Ferraris wrote: > Il 07/07/2011 11:14, Cameron Zwarich ha scritto: >> >> I haven't read the code in detail, but it looks like JumpThreading at least attempts to thread across indirect branches. You can either try to fix it or file a bug with your test case. > In the source it says "If the predecessor is an indirect goto, we
2011 Jul 07
2
[LLVMdev] Missed optimization with indirectbr terminator
Il 07/07/2011 11:14, Cameron Zwarich ha scritto: > I haven't read the code in detail, but it looks like JumpThreading at > least attempts to thread across indirect branches. You can either try > to fix it or file a bug with your test case. In the source it says "If the predecessor is an indirect goto, we can't split the edge.
2011 Jul 08
0
[LLVMdev] Missed optimization with indirectbr terminator
...ific successor. The only way to split an >> indirect goto is to insert code before the jump which checks for a >> specific destination address. This is very likely to be a pessimization. > Do you mean like turning a indirectbr %addr, [%a, %b, ...] > into a switch %addr, undef, [blockaddr(%a), %a], [blo > ckaddr(%b), %b], ... > ? (I know that the switch doesn't accept a pointer as first argument, it's just an example) That difference is relevant, though, because there's no way to implement such a switch except as a series of pointer comparisons (or at least offset...