From 5d0f7af3dc42d7bc843858317fba3bb91c44d68f Mon Sep 17 00:00:00 2001 From: Tom Roeder Date: Thu, 5 Jun 2014 19:29:43 +0000 Subject: 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210280 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/IPO/IPO.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'lib/Transforms/IPO') diff --git a/lib/Transforms/IPO/IPO.cpp b/lib/Transforms/IPO/IPO.cpp index b4d31d8d6f..38fd165e75 100644 --- a/lib/Transforms/IPO/IPO.cpp +++ b/lib/Transforms/IPO/IPO.cpp @@ -30,6 +30,7 @@ void llvm::initializeIPO(PassRegistry &Registry) { initializeGlobalDCEPass(Registry); initializeGlobalOptPass(Registry); initializeIPCPPass(Registry); + initializeJumpInstrTablesPass(Registry); initializeAlwaysInlinerPass(Registry); initializeSimpleInlinerPass(Registry); initializeInternalizePassPass(Registry); -- cgit v1.2.3