Files
mercury/tests/debugger/lval_desc_array.exp
Simon Taylor 61a05131ac Add an option `--no-inline-builtins', which causes builtins to
Estimated hours taken: 8
Branches: main

Add an option `--no-inline-builtins', which causes builtins to
be generated as calls to out-of-line procedures. This is done
by default when debugging, as without this option the execution
of builtins is not traced.

On earth, a compiler built in grade asm_fast.gc.tr.debug
takes 36.8s to run `mmc -C -I ../analysis/ hlds.make_hlds'.
When the compiler is built with `--no-inline-builtins',
this is increased to 38.6s.

The size of the compiler built in grade asm_fast.gc.tr.debug
increases from 45.0MB to 46.6MB.

compiler/options.m:
	Add the option.

compiler/code_util.m:
	Work out whether builtins should be generated inline.

compiler/handle_options.m:
	Disable inlining of builtins when debugging.

compiler/simplify.m:
compiler/higher_order.m:
compiler/modes.m:
	code_util__builtin_state now needs to know where the
	builtin is being called from to know whether a particular
	call should be treated as an inline builtin. The "recursive"
	calls from the automatically generated procedures for each
	builtin should always be generated inline, or else we would
	generate an infinite loop.

NEWS:
doc/user_guide.texi:
compiler/notes/todo.html:
	Document the change.

tests/debugger/Mmakefile:
tests/debugger/no_inline_builtins.{m,exp,inp}:
	Test case.

tests/debugger/*.{inp,exp,exp2}:
tests/debugger/declarative/*.{inp,exp,exp2}:
	Update due to changed event numbers.

tests/debugger/lval_desc_array.inp:
	Use a less brittle method for stepping to the point in
	the program where the test needs to display variables.

tests/debugger/declarative/library_forwarding.m:
tests/debugger/declarative/*.m:
	Add forwarding predicates for some library predicates
	and functions so that the declarative debugger doesn't
	ask different questions depending on whether or not
	the library was compiled with debugging enabled.
2003-01-30 05:59:30 +00:00

126 lines
4.1 KiB
Plaintext

1: 1 1 CALL pred lval_desc_array.main/2-0 (det) lval_desc_array.m:17
mdb> echo on
Command echo enabled.
mdb> context none
Contexts will not be printed.
mdb> register --quiet
mdb> break -E 107 -e lval_desc_array__increment
0: + stop entry pred lval_desc_array.increment/2-0 (det)
(ignore next 107 call events)
mdb> continue
217: 110 3 CALL pred lval_desc_array.increment/2-0 (det)
mdb> up
Ancestor level set to 1:
1 pred lval_desc_array.perform_increments/2-0 (det)
mdb> print *
DCG_0 (arg 1) 0
DCG_1 1
DCG_2 2
DCG_3 3
DCG_4 4
DCG_5 5
DCG_6 6
DCG_7 7
DCG_8 8
DCG_9 9
DCG_10 10
DCG_11 11
DCG_12 12
DCG_13 13
DCG_14 14
DCG_15 15
DCG_16 16
DCG_17 17
DCG_18 18
DCG_19 19
DCG_20 20
DCG_21 21
DCG_22 22
DCG_23 23
DCG_24 24
DCG_25 25
DCG_26 26
DCG_27 27
DCG_28 28
DCG_29 29
DCG_30 30
DCG_31 31
DCG_32 32
DCG_33 33
DCG_34 34
DCG_35 35
DCG_36 36
DCG_37 37
DCG_38 38
DCG_39 39
DCG_40 40
DCG_41 41
DCG_42 42
DCG_43 43
DCG_44 44
DCG_45 45
DCG_46 46
DCG_47 47
DCG_48 48
DCG_49 49
DCG_50 50
DCG_51 51
DCG_52 52
DCG_53 53
DCG_54 54
DCG_55 55
DCG_56 56
DCG_57 57
DCG_58 58
DCG_59 59
DCG_60 60
DCG_61 61
DCG_62 62
DCG_63 63
DCG_64 64
DCG_65 65
DCG_66 66
DCG_67 67
DCG_68 68
DCG_69 69
DCG_70 70
DCG_71 71
DCG_72 72
DCG_73 73
DCG_74 74
DCG_75 75
DCG_76 76
DCG_77 77
DCG_78 78
DCG_79 79
DCG_80 80
DCG_81 81
DCG_82 82
DCG_83 83
DCG_84 84
DCG_85 85
DCG_86 86
DCG_87 87
DCG_88 88
DCG_89 89
DCG_90 90
DCG_91 91
DCG_92 92
DCG_93 93
DCG_94 94
DCG_95 95
DCG_96 96
DCG_97 97
DCG_98 98
DCG_99 99
DCG_100 100
DCG_101 101
DCG_102 102
DCG_103 103
DCG_104 104
DCG_105 105
DCG_106 106
DCG_107 107
mdb> continue
108