summaryrefslogtreecommitdiff
path: root/tools/frr-llvm-cg.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/frr-llvm-cg.c')
-rw-r--r--tools/frr-llvm-cg.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/tools/frr-llvm-cg.c b/tools/frr-llvm-cg.c
index 84a756a376..5bdd10d06d 100644
--- a/tools/frr-llvm-cg.c
+++ b/tools/frr-llvm-cg.c
@@ -197,7 +197,7 @@ static void walk_const_fptrs(struct json_object *js_call, LLVMValueRef value,
#ifdef FRR_SPECIFIC
static bool is_thread_sched(const char *name, size_t len)
{
-#define thread_prefix "funcname_"
+#define thread_prefix "_"
static const char *const names[] = {
thread_prefix "thread_add_read_write",
thread_prefix "thread_add_timer",
@@ -227,6 +227,9 @@ static void process_call(struct json_object *js_calls,
LLVMValueRef called = LLVMGetCalledValue(instr);
+ if (LLVMIsAInlineAsm(called))
+ return;
+
if (LLVMIsAConstantExpr(called)) {
LLVMOpcode opcode = LLVMGetConstOpcode(called);
@@ -324,12 +327,12 @@ static void process_call(struct json_object *js_calls,
prefix);
} else {
char *dump = LLVMPrintValueToString(called);
- printf("\t%s\n", dump);
+ fprintf(stderr, "%s: ??? %s\n", prefix, dump);
LLVMDisposeMessage(dump);
}
return;
#ifdef FRR_SPECIFIC
- } else if (!strcmp(called_name, "install_element")) {
+ } else if (!strcmp(called_name, "_install_element")) {
called_type = FN_INSTALL_ELEMENT;
LLVMValueRef param0 = LLVMGetOperand(instr, 0);
@@ -380,10 +383,7 @@ static void process_call(struct json_object *js_calls,
json_object_new_string_len(called_name, called_len));
LLVMValueRef fparam;
- if (strstr(called_name, "_read_"))
- fparam = LLVMGetOperand(instr, 2);
- else
- fparam = LLVMGetOperand(instr, 1);
+ fparam = LLVMGetOperand(instr, 2);
assert(fparam);
size_t target_len = 0;