[LLVMdev] [RFC] Simple control-flow integrity

Eric Christopher echristo at gmail.com
Tue Feb 11 00:15:53 PST 2014


On Mon, Feb 10, 2014 at 11:51 PM, Reid Kleckner <rnk at google.com> wrote:
> Tom, this sounds awesome.  I'm imagining a wonderful world of CFI hardened
> browsers.
>
> On Mon, Feb 10, 2014 at 5:19 PM, Eric Christopher <echristo at gmail.com>
> wrote:
>>
>> >     1. creates a power-of-two sized InlineAsm jump table (or multiple
>> > jump tables) filled with jump instructions to each address-taken
>> > function.
>> >
>>
>> Why inline asm? There's probably a better way to do this via lowering
>> your jump table in the backend etc.
>
>
> IIRC this came up before, and I don't think we expose anything like a jump
> table at the IR level.  As an IR-to-IR transform, I think asm is the only
> way to do it.

I'd have to look more at what he's doing, but wouldn't a simple switch
statement in IR suffice? Efficiency would be up to the various
lowering mechanisms, but it wouldn't require inline asm.

-eric



More information about the llvm-dev mailing list