diff options
| author | Andrea Corallo | 2019-09-25 22:15:24 +0200 |
|---|---|---|
| committer | Andrea Corallo | 2020-01-01 11:37:54 +0100 |
| commit | 5630ebaf74f2f86e5d59fe4cba5ba96333e9fa6f (patch) | |
| tree | 9dc2415a9964a6d880c5611f5a8eb706b44cfd95 /src/comp.c | |
| parent | 9c31066ccdd6dbc7e9bd7a9a56de5c3103841018 (diff) | |
| download | emacs-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.c | 13 |
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); |