From 25d03a717689c661024ac2ee33b53ac2a9f33019 Mon Sep 17 00:00:00 2001 From: Andrea Shepard <andrea@special-circumstanc.es> Date: Sat, 16 Nov 2019 01:48:03 +0000 Subject: [PATCH] Use LLVM name/label macros in token.c --- src/backends/llvm/llvm.h | 5 + src/parsers/token.c | 325 +++++++++------------------------------ 2 files changed, 79 insertions(+), 251 deletions(-) diff --git a/src/backends/llvm/llvm.h b/src/backends/llvm/llvm.h index 368a4b0e..4cd8a015 100644 --- a/src/backends/llvm/llvm.h +++ b/src/backends/llvm/llvm.h @@ -21,6 +21,11 @@ s##_name = h_new(char, s##_name_len + 1); \ snprintf( s##_name, s##_name_len + 1, #s "_%p", (p)); +#define H_LLVM_COMPUTE_NAME_X(s, f, ...) \ + s##_name_len = snprintf(NULL, 0, #s "_" f "_%p", __VA_ARGS__); \ + s##_name = h_new(char, s##_name_len + 1); \ + snprintf( s##_name, s##_name_len + 1, #s "_" f "_%p", __VA_ARGS__); + #define H_LLVM_FREE_NAME(s) \ if ( s##_name ) { \ h_free( s##_name); \ diff --git a/src/parsers/token.c b/src/parsers/token.c index 3c2c6a88..81623569 100644 --- a/src/parsers/token.c +++ b/src/parsers/token.c @@ -88,38 +88,22 @@ static bool token_llvm_with_global( /* Allocator*/ HAllocator *mm__ = NULL; /* Names */ - char *tok_glob_entry_name = NULL; - int tok_glob_entry_name_len = 0; - char *tok_glob_loop_start_name = NULL; - int tok_glob_loop_start_name_len = 0; - char *tok_glob_loop_middle_name = NULL; - int tok_glob_loop_middle_name_len = 0; - char *tok_glob_loop_incr_name = NULL; - int tok_glob_loop_incr_name_len = 0; - char *tok_glob_success_name = NULL; - int tok_glob_success_name_len = 0; - char *tok_glob_end_name = NULL; - int tok_glob_end_name_len = 0; - char *tok_glob_str_name = NULL; - int tok_glob_str_name_len = 0; - char *tok_glob_i_name = NULL; - int tok_glob_i_name_len = 0; - char *tok_glob_icmp_i_len_name = NULL; - int tok_glob_icmp_i_len_name_len = 0; - char *tok_glob_cptr_name = NULL; - int tok_glob_cptr_name_len = 0; - char *tok_glob_c_name = NULL; - int tok_glob_c_name_len = 0; - char *tok_glob_read_bits_name = NULL; - int tok_glob_read_bits_name_len = 0; - char *tok_glob_r_name = NULL; - int tok_glob_r_name_len = 0; - char *tok_glob_icmp_c_r_name = NULL; - int tok_glob_icmp_c_r_name_len = 0; - char *tok_glob_i_incr_name = NULL; - int tok_glob_i_incr_name_len = 0; - char *tok_glob_rv_name = NULL; - int tok_glob_rv_name_len = 0; + H_LLVM_DECLARE_NAME(tok_glob_entry); + H_LLVM_DECLARE_NAME(tok_glob_loop_start); + H_LLVM_DECLARE_NAME(tok_glob_loop_middle); + H_LLVM_DECLARE_NAME(tok_glob_loop_incr); + H_LLVM_DECLARE_NAME(tok_glob_success); + H_LLVM_DECLARE_NAME(tok_glob_end); + H_LLVM_DECLARE_NAME(tok_glob_str); + H_LLVM_DECLARE_NAME(tok_glob_i); + H_LLVM_DECLARE_NAME(tok_glob_icmp_i_len); + H_LLVM_DECLARE_NAME(tok_glob_cptr); + H_LLVM_DECLARE_NAME(tok_glob_c); + H_LLVM_DECLARE_NAME(tok_glob_read_bits); + H_LLVM_DECLARE_NAME(tok_glob_r); + H_LLVM_DECLARE_NAME(tok_glob_icmp_c_r); + H_LLVM_DECLARE_NAME(tok_glob_i_incr); + H_LLVM_DECLARE_NAME(tok_glob_rv); /* Basic blocks */ LLVMBasicBlockRef entry, loop_start, loop_middle, loop_incr, success, end; /* Values */ @@ -131,38 +115,17 @@ static bool token_llvm_with_global( mm__ = ctxt->mm__; /* Set up basic blocks: entry, success and exit branches */ - tok_glob_entry_name_len = snprintf(NULL, 0, "tok_glob_entry_%p", p); - tok_glob_entry_name = h_new(char, tok_glob_entry_name_len + 1); - snprintf(tok_glob_entry_name, tok_glob_entry_name_len + 1, - "tok_glob_entry_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_entry, p); entry = LLVMAppendBasicBlock(ctxt->func, tok_glob_entry_name); - tok_glob_loop_start_name_len = - snprintf(NULL, 0, "tok_glob_loop_start_%p", p); - tok_glob_loop_start_name = h_new(char, tok_glob_loop_start_name_len + 1); - snprintf(tok_glob_loop_start_name, tok_glob_loop_start_name_len + 1, - "tok_glob_loop_start_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_loop_start, p); loop_start = LLVMAppendBasicBlock(ctxt->func, tok_glob_loop_start_name); - tok_glob_loop_middle_name_len = - snprintf(NULL, 0, "tok_glob_loop_middle_%p", p); - tok_glob_loop_middle_name = h_new(char, tok_glob_loop_middle_name_len + 1); - snprintf(tok_glob_loop_middle_name, tok_glob_loop_middle_name_len + 1, - "tok_glob_loop_middle_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_loop_middle, p); loop_middle = LLVMAppendBasicBlock(ctxt->func, tok_glob_loop_middle_name); - tok_glob_loop_incr_name_len = - snprintf(NULL, 0, "tok_glob_loop_incr_%p", p); - tok_glob_loop_incr_name = h_new(char, tok_glob_loop_incr_name_len + 1); - snprintf(tok_glob_loop_incr_name, tok_glob_loop_incr_name_len + 1, - "tok_glob_loop_incr_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_loop_incr, p); loop_incr = LLVMAppendBasicBlock(ctxt->func, tok_glob_loop_incr_name); - tok_glob_success_name_len = snprintf(NULL, 0, "tok_glob_success_%p", p); - tok_glob_success_name = h_new(char, tok_glob_success_name_len + 1); - snprintf(tok_glob_success_name, tok_glob_success_name_len + 1, - "tok_glob_success_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_success, p); success = LLVMAppendBasicBlock(ctxt->func, tok_glob_success_name); - tok_glob_end_name_len = snprintf(NULL, 0, "tok_glob_end_%p", p); - tok_glob_end_name = h_new(char, tok_glob_end_name_len + 1); - snprintf(tok_glob_end_name, tok_glob_end_name_len + 1, - "tok_glob_end_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_end, p); end = LLVMAppendBasicBlock(ctxt->func, tok_glob_end_name); /* Branch to entry block */ @@ -173,10 +136,7 @@ static bool token_llvm_with_global( * Get our string into the globals as a constant; skip the null termination * and save a byte since we can compare to length in the loop. */ - tok_glob_str_name_len = snprintf(NULL, 0, "tok_glob_str_%p", p); - tok_glob_str_name = h_new(char, tok_glob_str_name_len + 1); - snprintf(tok_glob_str_name, tok_glob_str_name_len + 1, - "tok_glob_str_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_str, p); str_const = LLVMConstString((const char *)(t->str), t->len, 1); str = LLVMAddGlobal(ctxt->mod, LLVMArrayType(LLVMInt8Type(), t->len), tok_glob_str_name); LLVMSetLinkage(str, LLVMInternalLinkage); @@ -196,10 +156,7 @@ static bool token_llvm_with_global( LLVMPositionBuilderAtEnd(ctxt->builder, loop_start); /* Keep an index counter */ - tok_glob_i_name_len = snprintf(NULL, 0, "tok_glob_i_%p", p); - tok_glob_i_name = h_new(char, tok_glob_i_name_len + 1); - snprintf(tok_glob_i_name, tok_glob_i_name_len + 1, - "tok_glob_i_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_i, p); i = LLVMBuildPhi(ctxt->builder, ctxt->llvm_size_t, tok_glob_i_name); i_init = LLVMConstInt(ctxt->llvm_size_t, 0, 0); /* @@ -212,11 +169,7 @@ static bool token_llvm_with_global( * Compare i to token string length (i.e., have we hit the end of the * token?); if ==, branch to success, if <, continue loop. */ - tok_glob_icmp_i_len_name_len = - snprintf(NULL, 0, "tok_glob_icmp_i_len_%p", p); - tok_glob_icmp_i_len_name = h_new(char, tok_glob_icmp_i_len_name_len + 1); - snprintf(tok_glob_icmp_i_len_name, tok_glob_icmp_i_len_name_len + 1, - "tok_glob_icmp_i_len_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_icmp_i_len, p); icmp_i_len = LLVMBuildICmp(ctxt->builder, LLVMIntULT, i, len, tok_glob_icmp_i_len_name); LLVMBuildCondBr(ctxt->builder, icmp_i_len, loop_middle, success); @@ -225,34 +178,21 @@ static bool token_llvm_with_global( LLVMPositionBuilderAtEnd(ctxt->builder, loop_middle); /* Get a char from the token string */ - tok_glob_cptr_name_len = snprintf(NULL, 0, "tok_glob_cptr_%p", p); - tok_glob_cptr_name = h_new(char, tok_glob_cptr_name_len + 1); - snprintf(tok_glob_cptr_name, tok_glob_cptr_name_len + 1, - "tok_glob_cptr_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_cptr, p); c_gep_indices[0] = LLVMConstInt(LLVMInt32Type(), 0, 0); c_gep_indices[1] = i; c_gep = LLVMBuildInBoundsGEP(ctxt->builder, str, c_gep_indices, 2, tok_glob_cptr_name); - tok_glob_c_name_len = snprintf(NULL, 0, "tok_glob_c_%p", p); - tok_glob_c_name = h_new(char, tok_glob_c_name_len + 1); - snprintf(tok_glob_c_name, tok_glob_c_name_len + 1, - "tok_glob_c_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_c, p); c = LLVMBuildLoad(ctxt->builder, c_gep, tok_glob_c_name); /* Read one char from input */ - tok_glob_read_bits_name_len = - snprintf(NULL, 0, "tok_glob_read_bits_%p", p); - tok_glob_read_bits_name = h_new(char, tok_glob_read_bits_name_len + 1); - snprintf(tok_glob_read_bits_name, tok_glob_read_bits_name_len + 1, - "tok_glob_read_bits_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_read_bits, p); bits = LLVMBuildCall(ctxt->builder, LLVMGetNamedFunction(ctxt->mod, "h_read_bits"), bits_args, 3, tok_glob_read_bits_name); /* Clamp to i8 */ - tok_glob_r_name_len = snprintf(NULL, 0, "tok_glob_r_%p", p); - tok_glob_r_name = h_new(char, tok_glob_r_name_len + 1); - snprintf(tok_glob_r_name, tok_glob_r_name_len + 1, - "tok_glob_r_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_r, p); r = LLVMBuildTrunc(ctxt->builder, bits, LLVMInt8Type(), tok_glob_r_name); @@ -260,11 +200,7 @@ static bool token_llvm_with_global( * Compare c and r; if !=, token mismatches, break out of loop and * fail. If ==, increment counter and go to next iteration. */ - tok_glob_icmp_c_r_name_len = - snprintf(NULL, 0, "tok_glob_icmp_c_r_%p", p); - tok_glob_icmp_c_r_name = h_new(char, tok_glob_icmp_c_r_name_len + 1); - snprintf(tok_glob_icmp_c_r_name, tok_glob_icmp_c_r_name_len + 1, - "tok_glob_icmp_c_r_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_icmp_c_r, p); icmp_c_r = LLVMBuildICmp(ctxt->builder, LLVMIntEQ, c, r, tok_glob_icmp_c_r_name); LLVMBuildCondBr(ctxt->builder, icmp_c_r, loop_incr, end); @@ -272,10 +208,7 @@ static bool token_llvm_with_global( /* Basic block loop_incr */ LLVMPositionBuilderAtEnd(ctxt->builder, loop_incr); /* End of loop, 2nd LLVMAddIncoming() for i */ - tok_glob_i_incr_name_len = snprintf(NULL, 0, "tok_glob_i_incr_%p", p); - tok_glob_i_incr_name = h_new(char, tok_glob_i_incr_name_len + 1); - snprintf(tok_glob_i_incr_name, tok_glob_i_incr_name_len + 1, - "tok_glob_i_incr_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_i_incr, p); i_incr = LLVMBuildAdd(ctxt->builder, i, LLVMConstInt(ctxt->llvm_size_t, 1, 0), tok_glob_i_incr_name); LLVMAddIncoming(i, &i_incr, &loop_incr, 1); @@ -291,10 +224,7 @@ static bool token_llvm_with_global( /* Basic block: end */ LLVMPositionBuilderAtEnd(ctxt->builder, end); /* phi the token or a null depending on where we came from */ - tok_glob_rv_name_len = snprintf(NULL, 0, "tok_glob_rv_%p", p); - tok_glob_rv_name = h_new(char, tok_glob_rv_name_len + 1); - snprintf(tok_glob_rv_name, tok_glob_rv_name_len + 1, - "tok_glob_rv_%p", p); + H_LLVM_COMPUTE_NAME(tok_glob_rv, p); rv = LLVMBuildPhi(ctxt->builder, ctxt->llvm_parseresultptr, tok_glob_rv_name); LLVMBasicBlockRef rv_phi_incoming_blocks[] = { success, @@ -310,85 +240,22 @@ static bool token_llvm_with_global( *res = rv; /* Free names */ - if (tok_glob_entry_name) { - h_free(tok_glob_entry_name); - tok_glob_entry_name = NULL; - } - - if (tok_glob_loop_start_name) { - h_free(tok_glob_loop_start_name); - tok_glob_loop_start_name = NULL; - } - - if (tok_glob_loop_middle_name) { - h_free(tok_glob_loop_middle_name); - tok_glob_loop_middle_name = NULL; - } - - if (tok_glob_loop_incr_name) { - h_free(tok_glob_loop_incr_name); - tok_glob_loop_incr_name = NULL; - } - - if (tok_glob_success_name) { - h_free(tok_glob_success_name); - tok_glob_success_name = NULL; - } - - if (tok_glob_end_name) { - h_free(tok_glob_end_name); - tok_glob_end_name = NULL; - } - - if (tok_glob_str_name) { - h_free(tok_glob_str_name); - tok_glob_str_name = NULL; - } - - if (tok_glob_i_name) { - h_free(tok_glob_i_name); - tok_glob_i_name = NULL; - } - - if (tok_glob_icmp_i_len_name) { - h_free(tok_glob_icmp_i_len_name); - tok_glob_icmp_i_len_name = NULL; - } - - if (tok_glob_cptr_name) { - h_free(tok_glob_cptr_name); - tok_glob_cptr_name = NULL; - } - - if (tok_glob_c_name) { - h_free(tok_glob_c_name); - tok_glob_c_name = NULL; - } - - if (tok_glob_read_bits_name) { - h_free(tok_glob_read_bits_name); - tok_glob_read_bits_name = NULL; - } - - if (tok_glob_r_name) { - h_free(tok_glob_r_name); - tok_glob_r_name = NULL; - } - - if (tok_glob_icmp_c_r_name) { - h_free(tok_glob_icmp_c_r_name); - tok_glob_icmp_c_r_name = NULL; - } - - if (tok_glob_i_incr_name) { - h_free(tok_glob_i_incr_name); - tok_glob_i_incr_name = NULL; - } - - if (tok_glob_rv_name) { - h_free(tok_glob_rv_name); - tok_glob_rv_name = NULL; - } + H_LLVM_FREE_NAME(tok_glob_entry); + H_LLVM_FREE_NAME(tok_glob_loop_start); + H_LLVM_FREE_NAME(tok_glob_loop_middle); + H_LLVM_FREE_NAME(tok_glob_loop_incr); + H_LLVM_FREE_NAME(tok_glob_success); + H_LLVM_FREE_NAME(tok_glob_end); + H_LLVM_FREE_NAME(tok_glob_str); + H_LLVM_FREE_NAME(tok_glob_i); + H_LLVM_FREE_NAME(tok_glob_icmp_i_len); + H_LLVM_FREE_NAME(tok_glob_cptr); + H_LLVM_FREE_NAME(tok_glob_c); + H_LLVM_FREE_NAME(tok_glob_read_bits); + H_LLVM_FREE_NAME(tok_glob_r); + H_LLVM_FREE_NAME(tok_glob_icmp_c_r); + H_LLVM_FREE_NAME(tok_glob_i_incr); + H_LLVM_FREE_NAME(tok_glob_rv); return true; } @@ -406,22 +273,14 @@ static bool token_llvm_with_sequential_comparisons( /* Allocator */ HAllocator *mm__; /* Names */ - char *tok_seq_entry_name = NULL; - int tok_seq_entry_name_len = 0; - char *tok_seq_success_name = NULL; - int tok_seq_success_name_len = 0; - char *tok_seq_end_name = NULL; - int tok_seq_end_name_len = 0; - char *tok_seq_read_bits_name = NULL; - int tok_seq_read_bits_name_len = 0; - char *tok_seq_r_name = NULL; - int tok_seq_r_name_len = 0; - char *tok_seq_icmp_name = NULL; - int tok_seq_icmp_name_len = 0; - char *tok_seq_matched_name = NULL; - int tok_seq_matched_name_len = 0; - char *tok_seq_rv_name = NULL; - int tok_seq_rv_name_len = 0; + H_LLVM_DECLARE_NAME(tok_seq_entry); + H_LLVM_DECLARE_NAME(tok_seq_success); + H_LLVM_DECLARE_NAME(tok_seq_end); + H_LLVM_DECLARE_NAME(tok_seq_read_bits); + H_LLVM_DECLARE_NAME(tok_seq_r); + H_LLVM_DECLARE_NAME(tok_seq_icmp); + H_LLVM_DECLARE_NAME(tok_seq_matched); + H_LLVM_DECLARE_NAME(tok_seq_rv); /* Basic blocks */ LLVMBasicBlockRef entry, success, end, next_char; /* Values */ @@ -434,20 +293,11 @@ static bool token_llvm_with_sequential_comparisons( mm__ = ctxt->mm__; /* Set up basic blocks: entry, success and exit branches */ - tok_seq_entry_name_len = snprintf(NULL, 0, "tok_seq_entry_%p", p); - tok_seq_entry_name = h_new(char, tok_seq_entry_name_len + 1); - snprintf(tok_seq_entry_name, tok_seq_entry_name_len + 1, - "tok_seq_entry_%p", p); + H_LLVM_COMPUTE_NAME(tok_seq_entry, p); entry = LLVMAppendBasicBlock(ctxt->func, tok_seq_entry_name); - tok_seq_success_name_len = snprintf(NULL, 0, "tok_seq_success_%p", p); - tok_seq_success_name = h_new(char, tok_seq_success_name_len + 1); - snprintf(tok_seq_success_name, tok_seq_success_name_len + 1, - "tok_seq_success_%p", p); + H_LLVM_COMPUTE_NAME(tok_seq_success, p); success = LLVMAppendBasicBlock(ctxt->func, tok_seq_success_name); - tok_seq_end_name_len = snprintf(NULL, 0, "tok_seq_end_%p", p); - tok_seq_end_name = h_new(char, tok_seq_end_name_len + 1); - snprintf(tok_seq_end_name, tok_seq_end_name_len + 1, - "tok_seq_end_%p", p); + H_LLVM_COMPUTE_NAME(tok_seq_end, p); end = LLVMAppendBasicBlock(ctxt->func, tok_seq_end_name); /* Branch to entry block */ @@ -466,40 +316,30 @@ static bool token_llvm_with_sequential_comparisons( LLVMBasicBlockRef curr_char = entry; for (i = 0; i < t->len; ++i) { /* Read a char */ + H_LLVM_COMPUTE_NAME_X(tok_seq_read_bits, "%d", i, p); +#if 0 tok_seq_read_bits_name_len = snprintf(NULL, 0, "tok_seq_read_bits_%d_%p", i, p); tok_seq_read_bits_name = h_new(char, tok_seq_read_bits_name_len + 1); snprintf(tok_seq_read_bits_name, tok_seq_read_bits_name_len + 1, "tok_seq_read_bits_%d_%p", i, p); +#endif bits = LLVMBuildCall(ctxt->builder, LLVMGetNamedFunction(ctxt->mod, "h_read_bits"), bits_args, 3, tok_seq_read_bits_name); - h_free(tok_seq_read_bits_name); - tok_seq_read_bits_name = NULL; + H_LLVM_FREE_NAME(tok_seq_read_bits); /* Clamp to i8 */ - tok_seq_r_name_len = snprintf(NULL, 0, "tok_seq_r_%d_%p", i, p); - tok_seq_r_name = h_new(char, tok_seq_r_name_len + 1); - snprintf(tok_seq_r_name, tok_seq_r_name_len + 1, "tok_seq_r_%d_%p", i, p); + H_LLVM_COMPUTE_NAME_X(tok_seq_r, "%d", i, p); r = LLVMBuildTrunc(ctxt->builder, bits, LLVMInt8Type(), tok_seq_r_name); - h_free(tok_seq_r_name); - tok_seq_r_name = NULL; + H_LLVM_FREE_NAME(tok_seq_r); /* Comparison */ - tok_seq_icmp_name_len = snprintf(NULL, 0, "tok_seq_icmp_%d_%p", i, p); - tok_seq_icmp_name = h_new(char, tok_seq_icmp_name_len + 1); - snprintf(tok_seq_icmp_name, tok_seq_icmp_name_len + 1, - "tok_seq_icmp_%d_%p", i, p); + H_LLVM_COMPUTE_NAME_X(tok_seq_icmp, "%d", i, p); c = LLVMConstInt(LLVMInt8Type(), t->str[i], 0); icmp = LLVMBuildICmp(ctxt->builder, LLVMIntEQ, c, r, tok_seq_icmp_name); - h_free(tok_seq_icmp_name); - tok_seq_icmp_name = NULL; + H_LLVM_FREE_NAME(tok_seq_icmp); /* Next basic block */ - tok_seq_matched_name_len = - snprintf(NULL, 0, "tok_seq_matched_%d_%p", i, p); - tok_seq_matched_name = h_new(char, tok_seq_matched_name_len + 1); - snprintf(tok_seq_matched_name, tok_seq_matched_name_len + 1, - "tok_seq_matched_%d_%p", i, p); + H_LLVM_COMPUTE_NAME_X(tok_seq_matched, "%d", i, p); next_char = LLVMAppendBasicBlock(ctxt->func, tok_seq_matched_name); - h_free(tok_seq_matched_name); - tok_seq_matched_name = NULL; + H_LLVM_FREE_NAME(tok_seq_matched); /* Conditional branch */ LLVMBuildCondBr(ctxt->builder, icmp, next_char, end); /* Fill in our row in the phi tables */ @@ -526,9 +366,7 @@ static bool token_llvm_with_sequential_comparisons( /* End block: return a token if we made one */ LLVMPositionBuilderAtEnd(ctxt->builder, end); /* phi the token or a null depending on where we came from */ - tok_seq_rv_name_len = snprintf(NULL, 0, "tok_seq_rv_%p", p); - tok_seq_rv_name = h_new(char, tok_seq_rv_name_len + 1); - snprintf(tok_seq_rv_name, tok_seq_rv_name_len + 1, "tok_seq_rv_%p", p); + H_LLVM_COMPUTE_NAME(tok_seq_rv, p); rv = LLVMBuildPhi(ctxt->builder, ctxt->llvm_parseresultptr, tok_seq_rv_name); LLVMAddIncoming(rv, values_into_phi, bbs_into_phi, 1 + t->len); @@ -541,25 +379,10 @@ static bool token_llvm_with_sequential_comparisons( *res = rv; /* Free names */ - if (tok_seq_entry_name) { - h_free(tok_seq_entry_name); - tok_seq_entry_name = NULL; - } - - if (tok_seq_success_name) { - h_free(tok_seq_success_name); - tok_seq_success_name = NULL; - } - - if (tok_seq_end_name) { - h_free(tok_seq_end_name); - tok_seq_end_name = NULL; - } - - if (tok_seq_rv_name) { - h_free(tok_seq_rv_name); - tok_seq_rv_name = NULL; - } + H_LLVM_FREE_NAME(tok_seq_entry); + H_LLVM_FREE_NAME(tok_seq_success); + H_LLVM_FREE_NAME(tok_seq_end); + H_LLVM_FREE_NAME(tok_seq_rv); return true; } -- GitLab