search for: foo_ifunc

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

2015 Dec 18
2
RFC: __attribute__((ifunc("resolver")) representation in LLVM IR
...`GlobalAlias` >From implementation perspective ifunc is very close to a function alias that points to resolver function as a target. During asm emissions `@gnu_indirect_function` symbol attribute is added. In printed LLVM it could look like this: `@foo = alias ifunc i32 (i32), bitcast (i64 ()* @foo_ifunc to i32 (i32)*)` Pros: - minimal changes LLVM code base Cons: - ifunc is not really an alias, if some code passes through alias and starts using resolver function instead of ifunc, it is always an error - in particular in my prototype I had to add weak linkage to inhibit optimizations (it prevents...
2015 Dec 19
2
RFC: __attribute__((ifunc("resolver")) representation in LLVM IR
...very close to a function alias > that > > points to resolver function as a target. During asm emissions > > `@gnu_indirect_function` symbol attribute is added. In printed LLVM it > could > > look like this: > > > > `@foo = alias ifunc i32 (i32), bitcast (i64 ()* @foo_ifunc to i32 > (i32)*)` > > > > Pros: > > - minimal changes LLVM code base > > > > Cons: > > - ifunc is not really an alias, if some code passes through alias and > starts > > using resolver function instead of ifunc, it is always an error > > - in pa...
2015 Dec 21
2
RFC: __attribute__((ifunc("resolver")) representation in LLVM IR
...;> > points to resolver function as a target. During asm emissions >>> > `@gnu_indirect_function` symbol attribute is added. In printed LLVM it >>> could >>> > look like this: >>> > >>> > `@foo = alias ifunc i32 (i32), bitcast (i64 ()* @foo_ifunc to i32 >>> (i32)*)` >>> > >>> > Pros: >>> > - minimal changes LLVM code base >>> > >>> > Cons: >>> > - ifunc is not really an alias, if some code passes through alias and >>> starts >>> > using res...
2015 Dec 23
2
RFC: __attribute__((ifunc("resolver")) representation in LLVM IR
...arget. During asm emissions >>>>> > `@gnu_indirect_function` symbol attribute is added. In printed LLVM >>>>> > it could >>>>> > look like this: >>>>> > >>>>> > `@foo = alias ifunc i32 (i32), bitcast (i64 ()* @foo_ifunc to i32 >>>>> > (i32)*)` >>>>> > >>>>> > Pros: >>>>> > - minimal changes LLVM code base >>>>> > >>>>> > Cons: >>>>> > - ifunc is not really an alias, if some code passes thro...