Add a new attribute called 'jumptable' that creates jump-instruction tables for functions marked with this attribute.
It includes a pass that rewrites all indirect calls to jumptable functions to pass through these tables. This also adds backend support for generating the jump-instruction tables on ARM and X86. Note that since the jumptable attribute creates a second function pointer for a function, any function marked with jumptable must also be marked with unnamed_addr. llvm-svn: 210280
This commit is contained in:
@@ -549,6 +549,8 @@ static Attribute::AttrKind GetAttrFromCode(uint64_t Code) {
|
||||
return Attribute::InlineHint;
|
||||
case bitc::ATTR_KIND_IN_REG:
|
||||
return Attribute::InReg;
|
||||
case bitc::ATTR_KIND_JUMP_TABLE:
|
||||
return Attribute::JumpTable;
|
||||
case bitc::ATTR_KIND_MIN_SIZE:
|
||||
return Attribute::MinSize;
|
||||
case bitc::ATTR_KIND_NAKED:
|
||||
|
||||
Reference in New Issue
Block a user