ocaml/asmcomp
Stephen Dolan 4d4a056bc7
Micro-optimise allocations on amd64 to save a register (#9280)
There's no need for allocation on amd64 to clobber the %rax register. It's only used in one case (-compact out-of-line allocation of >3 words), and only used there to do a single subtraction. That subtraction can be done by the caller at no code size penalty, freeing up %rax.

Inside amd64.S functions, %r11 can be used instead of %rax as temporary.  %r11 is destroyed by PLT stub code, so on ELF platforms it costs nothing to use.
2020-03-09 19:52:36 +01:00
..
amd64 Micro-optimise allocations on amd64 to save a register (#9280) 2020-03-09 19:52:36 +01:00
arm Per-architecture support for allocation size info in frame tables. 2019-10-23 09:24:13 +01:00
arm64 Per-architecture support for allocation size info in frame tables. 2019-10-23 09:24:13 +01:00
debug Split Linearize into two modules 2019-09-04 11:55:11 +01:00
i386 Per-architecture support for allocation size info in frame tables. 2019-10-23 09:24:13 +01:00
power Per-architecture support for allocation size info in frame tables. 2019-10-23 09:24:13 +01:00
s390x Per-architecture support for allocation size info in frame tables. 2019-10-23 09:24:13 +01:00
CSEgen.ml Remove loop constructors in Cmm and Mach 2019-02-19 17:00:38 +01:00
CSEgen.mli Fixing typos in various files (#2246) 2019-02-13 14:04:56 +01:00
afl_instrument.ml Use typing information from Clambda for mutable Cmm variables 2020-02-25 15:03:14 +00:00
afl_instrument.mli More debugging information in Cmm terms (#2308) 2019-03-13 15:40:04 +00:00
asmgen.ml Stop before emit 2019-10-30 15:27:29 +00:00
asmgen.mli Move some code from Asmgen to the middle end directory etc. (#2288) 2019-05-10 15:11:22 +02:00
asmlibrarian.ml Refactor load path management and initial environment 2019-01-30 16:36:38 +00:00
asmlibrarian.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
asmlink.ml output-complete-obj .so: link runtime c libraries 2020-02-17 10:10:45 +01:00
asmlink.mli refactoring: use Misc type aliases in asmcomp/asmlink.ml 2019-01-30 22:37:13 +01:00
asmpackager.ml Fix #8769 (#8770) 2019-06-28 16:17:00 +01:00
asmpackager.mli Add option to dump the output of e.g. -dlambda in a file (#1913) 2018-07-27 08:51:53 +01:00
branch_relaxation.ml Use allocation-size info on more than just amd64. 2019-10-22 11:47:31 +01:00
branch_relaxation.mli Split Linearize into two modules 2019-09-04 11:55:11 +01:00
branch_relaxation_intf.ml Use allocation-size info on more than just amd64. 2019-10-22 11:47:31 +01:00
cmm.ml Use typing information from Clambda for mutable Cmm variables 2020-02-25 15:03:14 +00:00
cmm.mli Use typing information from Clambda for mutable Cmm variables 2020-02-25 15:03:14 +00:00
cmm_helpers.ml Use typing information from Clambda for mutable Cmm variables 2020-02-25 15:03:14 +00:00
cmm_helpers.mli Remove the transformation untag_int(tag_int x) = x. (#9032) 2019-10-14 14:39:17 +02:00
cmmgen.ml Use typing information from Clambda for mutable Cmm variables 2020-02-25 15:03:14 +00:00
cmmgen.mli Split cmmgen into generic cmm helpers and clambda-specific transformations (#1963) 2019-10-04 17:49:59 +02:00
cmmgen_state.ml Split cmmgen into generic cmm helpers and clambda-specific transformations (#1963) 2019-10-04 17:49:59 +02:00
cmmgen_state.mli Split cmmgen into generic cmm helpers and clambda-specific transformations (#1963) 2019-10-04 17:49:59 +02:00
coloring.ml Pass num_stack_slots as argument 2019-09-11 18:48:20 +01:00
coloring.mli Pass num_stack_slots as argument 2019-09-11 18:48:20 +01:00
comballoc.ml Use allocation-size info on more than just amd64. 2019-10-22 11:47:31 +01:00
comballoc.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
deadcode.ml Eliminate dead `ICatch` handlers (#2321) 2019-08-06 12:23:13 +01:00
deadcode.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
dune [minor] fix dune build 2019-01-08 15:02:09 +01:00
emit.mli Split Linearize into two modules 2019-09-04 11:55:11 +01:00
emitaux.ml Use allocation-size info on more than just amd64. 2019-10-22 11:47:31 +01:00
emitaux.mli Use allocation-size info on more than just amd64. 2019-10-22 11:47:31 +01:00
interf.ml Revised handling of weights over preference edges (#8909) 2019-09-26 19:03:11 +02:00
interf.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
interval.ml Remove loop constructors in Cmm and Mach 2019-02-19 17:00:38 +01:00
interval.mli Correct copyright header formatting 2017-10-25 23:54:39 +01:00
linear.ml Move contains_calls and num_stack_slots from Proc to Mach.fundecl 2019-09-09 11:33:03 +01:00
linear.mli Move contains_calls and num_stack_slots from Proc to Mach.fundecl 2019-09-09 11:33:03 +01:00
linearize.ml Fix indentation 2019-09-10 12:43:30 +01:00
linearize.mli Split Linearize into two modules 2019-09-04 11:55:11 +01:00
linscan.ml Pass num_stack_slots as argument 2019-09-11 18:48:20 +01:00
linscan.mli Pass num_stack_slots as argument 2019-09-11 18:48:20 +01:00
liveness.ml Remove loop constructors in Cmm and Mach 2019-02-19 17:00:38 +01:00
liveness.mli liveness: print fatal errors fully on stderr 2018-07-15 15:08:48 -04:00
mach.ml Use allocation-size info on more than just amd64. 2019-10-22 11:47:31 +01:00
mach.mli Use allocation-size info on more than just amd64. 2019-10-22 11:47:31 +01:00
printcmm.ml Use typing information from Clambda for mutable Cmm variables 2020-02-25 15:03:14 +00:00
printcmm.mli Move backtrace support global variables to domain state. 2019-08-23 09:50:05 +05:30
printlinear.ml -dno-locations: hide source locations (and debug events) from IR dumps 2020-01-09 15:25:16 +01:00
printlinear.mli Split Linearize into two modules 2019-09-04 11:55:11 +01:00
printmach.ml -dno-locations: hide source locations (and debug events) from IR dumps 2020-01-09 15:25:16 +01:00
printmach.mli Merge dump_live and print_live 2019-09-30 15:56:40 +02:00
proc.mli Move contains_calls and num_stack_slots from Proc to Mach.fundecl 2019-09-09 11:33:03 +01:00
reg.ml Use typing information from Clambda for mutable Cmm variables 2020-02-25 15:03:14 +00:00
reg.mli Use typing information from Clambda for mutable Cmm variables 2020-02-25 15:03:14 +00:00
reload.mli Pass num_stack_slots as argument 2019-09-11 18:48:20 +01:00
reloadgen.ml Pass num_stack_slots as argument 2019-09-11 18:48:20 +01:00
reloadgen.mli Pass num_stack_slots as argument 2019-09-11 18:48:20 +01:00
schedgen.ml Move contains_calls and num_stack_slots from Proc to Mach.fundecl 2019-09-09 11:33:03 +01:00
schedgen.mli Split Linearize into two modules 2019-09-04 11:55:11 +01:00
scheduling.mli Split Linearize into two modules 2019-09-04 11:55:11 +01:00
selectgen.ml Assert that Cassign is only used on Clet_mut-bound variables 2020-02-25 15:23:38 +00:00
selectgen.mli Assert that Cassign is only used on Clet_mut-bound variables 2020-02-25 15:23:38 +00:00
selection.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
spacetime_profiling.ml Retain debug information about allocation sizes, for statmemprof. 2019-10-22 11:47:31 +01:00
spacetime_profiling.mli Spacetime: a new memory profiler (#585) 2016-07-29 15:07:10 +01:00
spill.ml Move contains_calls and num_stack_slots from Proc to Mach.fundecl 2019-09-09 11:33:03 +01:00
spill.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
split.ml Move contains_calls and num_stack_slots from Proc to Mach.fundecl 2019-09-09 11:33:03 +01:00
split.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
strmatch.ml More debugging information in Cmm terms (#2308) 2019-03-13 15:40:04 +00:00
strmatch.mli Warn about unused functor parameters (#8891) 2019-10-14 11:11:01 +01:00
x86_ast.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
x86_dsl.ml Add X86_dsl.r13 2016-06-20 11:19:17 +01:00
x86_dsl.mli Add X86_dsl.r13 2016-06-20 11:19:17 +01:00
x86_gas.ml s/string_of_int/Int.to_string/g 2018-11-07 13:52:02 +01:00
x86_gas.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
x86_masm.ml Update headers for the new license. 2016-02-18 16:59:16 +01:00
x86_masm.mli Update headers for the new license. 2016-02-18 16:59:16 +01:00
x86_proc.ml Remove support for compiler plugins (#2276) 2019-03-13 11:46:37 +01:00
x86_proc.mli Remove support for compiler plugins (#2276) 2019-03-13 11:46:37 +01:00