summaryrefslogtreecommitdiffstats
path: root/llvm/include/llvm-c
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/include/llvm-c')
-rw-r--r--llvm/include/llvm-c/lto.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/llvm/include/llvm-c/lto.h b/llvm/include/llvm-c/lto.h
index 89f54b7a7b7..2292f470eba 100644
--- a/llvm/include/llvm-c/lto.h
+++ b/llvm/include/llvm-c/lto.h
@@ -40,7 +40,7 @@ typedef bool lto_bool_t;
* @{
*/
-#define LTO_API_VERSION 5
+#define LTO_API_VERSION 6
typedef enum {
LTO_SYMBOL_ALIGNMENT_MASK = 0x0000001F, /* log2 of alignment */
@@ -73,6 +73,11 @@ typedef enum {
LTO_CODEGEN_PIC_MODEL_DYNAMIC_NO_PIC = 2
} lto_codegen_model;
+typedef enum {
+ LTO_INTERNALIZE_FULL = 0,
+ LTO_INTERNALIZE_NONE = 1,
+ LTO_INTERNALIZE_HIDDEN = 2
+} lto_internalize_strategy;
/** opaque reference to a loaded object module */
typedef struct LTOModule* lto_module_t;
@@ -264,6 +269,14 @@ lto_codegen_set_assembler_args(lto_code_gen_t cg, const char **args,
int nargs);
/**
+ * Sets the strategy to use during internalize. Default strategy is
+ * LTO_INTERNALIZE_FULL.
+ */
+extern void
+lto_codegen_set_internalize_strategy(lto_code_gen_t cg,
+ lto_internalize_strategy);
+
+/**
* Tells LTO optimization passes that this symbol must be preserved
* because it is referenced by native code or a command line option.
*/
OpenPOWER on IntegriCloud