aboutsummaryrefslogtreecommitdiffstats
path: root/src/comp.c
diff options
context:
space:
mode:
authorAndrea Corallo2019-09-25 22:15:24 +0200
committerAndrea Corallo2020-01-01 11:37:54 +0100
commit5630ebaf74f2f86e5d59fe4cba5ba96333e9fa6f (patch)
tree9dc2415a9964a6d880c5611f5a8eb706b44cfd95 /src/comp.c
parent9c31066ccdd6dbc7e9bd7a9a56de5c3103841018 (diff)
downloademacs-5630ebaf74f2f86e5d59fe4cba5ba96333e9fa6f.tar.gz
emacs-5630ebaf74f2f86e5d59fe4cba5ba96333e9fa6f.zip
do not force inlining for func involving ipa-pro
Diffstat (limited to 'src/comp.c')
-rw-r--r--src/comp.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/comp.c b/src/comp.c
index c968d2bf705..48ddba7eb27 100644
--- a/src/comp.c
+++ b/src/comp.c
@@ -2234,9 +2234,14 @@ define_CAR_CDR (void)
2234 NULL, 2234 NULL,
2235 comp.bool_type, 2235 comp.bool_type,
2236 "is_cons") }; 2236 "is_cons") };
2237 /* TODO: understand why after ipa-prop pass gcc is less keen on inlining
2238 and as consequence can refuse to compile these. (see dhrystone.el)
2239 Flag this and all the one involved in ipa-prop as
2240 GCC_JIT_FUNCTION_INTERNAL not to fail compilation in case.
2241 This seems at least to have no perf downside. */
2237 func[i] = 2242 func[i] =
2238 gcc_jit_context_new_function (comp.ctxt, NULL, 2243 gcc_jit_context_new_function (comp.ctxt, NULL,
2239 GCC_JIT_FUNCTION_ALWAYS_INLINE, 2244 GCC_JIT_FUNCTION_INTERNAL,
2240 comp.lisp_obj_type, 2245 comp.lisp_obj_type,
2241 f_name [i], 2246 f_name [i],
2242 2, param, 0); 2247 2, param, 0);
@@ -2321,7 +2326,7 @@ define_setcar_setcdr (void)
2321 2326
2322 gcc_jit_function **f_ref = !i ? &comp.setcar : &comp.setcdr; 2327 gcc_jit_function **f_ref = !i ? &comp.setcar : &comp.setcdr;
2323 *f_ref = gcc_jit_context_new_function (comp.ctxt, NULL, 2328 *f_ref = gcc_jit_context_new_function (comp.ctxt, NULL,
2324 GCC_JIT_FUNCTION_ALWAYS_INLINE, 2329 GCC_JIT_FUNCTION_INTERNAL,
2325 comp.lisp_obj_type, 2330 comp.lisp_obj_type,
2326 f_name[i], 2331 f_name[i],
2327 3, param, 0); 2332 3, param, 0);
@@ -2389,7 +2394,7 @@ define_add1_sub1 (void)
2389 "is_fixnum") }; 2394 "is_fixnum") };
2390 comp.func = func[i] = 2395 comp.func = func[i] =
2391 gcc_jit_context_new_function (comp.ctxt, NULL, 2396 gcc_jit_context_new_function (comp.ctxt, NULL,
2392 GCC_JIT_FUNCTION_ALWAYS_INLINE, 2397 GCC_JIT_FUNCTION_INTERNAL,
2393 comp.lisp_obj_type, 2398 comp.lisp_obj_type,
2394 f_name[i], 2399 f_name[i],
2395 2, 2400 2,
@@ -2473,7 +2478,7 @@ define_negate (void)
2473 2478
2474 comp.func = comp.negate = 2479 comp.func = comp.negate =
2475 gcc_jit_context_new_function (comp.ctxt, NULL, 2480 gcc_jit_context_new_function (comp.ctxt, NULL,
2476 GCC_JIT_FUNCTION_ALWAYS_INLINE, 2481 GCC_JIT_FUNCTION_INTERNAL,
2477 comp.lisp_obj_type, 2482 comp.lisp_obj_type,
2478 "negate", 2483 "negate",
2479 2, param, 0); 2484 2, param, 0);