diff options
Diffstat (limited to 'lib/hipe')
-rw-r--r-- | lib/hipe/Makefile | 21 | ||||
-rw-r--r-- | lib/hipe/amd64/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/arm/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/boot_ebin/.gitignore | 0 | ||||
-rw-r--r-- | lib/hipe/cerl/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/cerl/erl_bif_types.erl | 48 | ||||
-rw-r--r-- | lib/hipe/doc/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/doc/src/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/flow/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/icode/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/main/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/main/hipe.app.src | 1 | ||||
-rw-r--r-- | lib/hipe/main/hipe.erl | 6 | ||||
-rw-r--r-- | lib/hipe/native.mk | 4 | ||||
-rw-r--r-- | lib/hipe/opt/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/ppc/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/regalloc/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/rtl/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/sparc/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/util/Makefile | 3 | ||||
-rw-r--r-- | lib/hipe/x86/Makefile | 3 |
21 files changed, 111 insertions, 14 deletions
diff --git a/lib/hipe/Makefile b/lib/hipe/Makefile index 6682c9aac0..f2be75f0dd 100644 --- a/lib/hipe/Makefile +++ b/lib/hipe/Makefile @@ -37,8 +37,13 @@ else SUB_DIRECTORIES = $(ALWAYS_SUBDIRS) endif + include native.mk +ifndef EBIN +EBIN = ../ebin +endif + # # Default Subdir Targets # @@ -52,12 +57,20 @@ edocs: fi all-subdirs: - -for dir in $(SUB_DIRECTORIES); do \ - (cd $$dir; $(MAKE) $(MAKETARGET) EBIN=../ebin; cd ..); \ + for dir in $(SUB_DIRECTORIES); do \ + (cd $$dir; $(MAKE) $(MAKETARGET) EBIN=$(EBIN); cd ..); \ + done + +# distclean and realclean should clean the bootstrap files +all-subdirs-x: + for dir in $(SUB_DIRECTORIES); do \ + (cd $$dir; $(MAKE) $(MAKETARGET) EBIN=../boot_ebin; cd ..); \ done +clean: + $(MAKE) MAKETARGET="clean" all-subdirs all-subdirs-x distclean: - $(MAKE) MAKETARGET="distclean" all-subdirs + $(MAKE) MAKETARGET="distclean" all-subdirs all-subdirs-x realclean: - $(MAKE) MAKETARGET="realclean" all-subdirs + $(MAKE) MAKETARGET="realclean" all-subdirs all-subdirs-x diff --git a/lib/hipe/amd64/Makefile b/lib/hipe/amd64/Makefile index 58377e5349..397cc0539e 100644 --- a/lib/hipe/amd64/Makefile +++ b/lib/hipe/amd64/Makefile @@ -89,6 +89,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/arm/Makefile b/lib/hipe/arm/Makefile index 3f60cd77cc..6187b7e925 100644 --- a/lib/hipe/arm/Makefile +++ b/lib/hipe/arm/Makefile @@ -90,6 +90,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/boot_ebin/.gitignore b/lib/hipe/boot_ebin/.gitignore new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/lib/hipe/boot_ebin/.gitignore diff --git a/lib/hipe/cerl/Makefile b/lib/hipe/cerl/Makefile index 7fcc44d27d..d0a0ea1f59 100644 --- a/lib/hipe/cerl/Makefile +++ b/lib/hipe/cerl/Makefile @@ -82,6 +82,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/cerl/erl_bif_types.erl b/lib/hipe/cerl/erl_bif_types.erl index 825d79bb3c..845df0ca61 100644 --- a/lib/hipe/cerl/erl_bif_types.erl +++ b/lib/hipe/cerl/erl_bif_types.erl @@ -1195,11 +1195,13 @@ type(erlang, process_flag, 2, Xs) -> case t_atom_vals(Flag) of ['error_handler'] -> t_atom(); ['min_heap_size'] -> t_non_neg_integer(); + ['min_bin_vheap_size'] -> t_non_neg_integer(); ['scheduler'] -> t_non_neg_integer(); ['monitor_nodes'] -> t_boolean(); ['priority'] -> t_process_priority_level(); ['save_calls'] -> t_non_neg_integer(); ['trap_exit'] -> t_boolean(); + ['sensitive'] -> t_boolean(); List when is_list(List) -> T_process_flag_returns; unknown -> @@ -1496,6 +1498,8 @@ type(erlang, system_flag, 2, Xs) -> t_non_neg_fixnum(); ['min_heap_size'] -> t_non_neg_fixnum(); + ['min_bin_vheap_size'] -> + t_non_neg_fixnum(); ['multi_scheduling'] -> t_system_multi_scheduling(); ['schedulers_online'] -> @@ -1539,8 +1543,12 @@ type(erlang, system_info, 1, Xs) -> t_list(t_tuple([t_atom(), t_list(t_tuple([t_atom(), t_any()]))]))]); + ['build_type'] -> + t_system_build_type_return(); ['break_ignored'] -> t_boolean(); + ['c_compiler_used'] -> + t_tuple([t_atom(), t_any()]); ['cpu_topology'] -> t_system_cpu_topology(); ['compat_rel'] -> @@ -1553,6 +1561,8 @@ type(erlang, system_info, 1, Xs) -> t_binary(); ['dist_ctrl'] -> t_list(t_tuple([t_atom(), t_sup([t_pid(), t_port])])); + ['driver_version'] -> + t_string(); %% elib_malloc is intentionally not included, %% because it scheduled for removal in R15. ['endian'] -> @@ -1566,7 +1576,9 @@ type(erlang, system_info, 1, Xs) -> ['heap_sizes'] -> t_list(t_integer()); ['heap_type'] -> - t_sup([t_atom('private'), t_atom('hybrid')]); + t_sup([t_atom('private'), + t_atom('shared'), + t_atom('hybrid')]); ['hipe_architecture'] -> t_atoms(['amd64', 'arm', 'powerpc', 'ppc64', 'undefined', 'ultrasparc', 'x86']); @@ -1574,12 +1586,20 @@ type(erlang, system_info, 1, Xs) -> t_binary(); ['internal_cpu_topology'] -> %% Undocumented internal feature t_internal_cpu_topology(); + ['kernel_poll'] -> + t_boolean(); ['loaded'] -> t_binary(); ['logical_processors'] -> t_non_neg_fixnum(); ['machine'] -> t_string(); + ['min_heap_size'] -> + t_tuple([t_atom('min_heap_size'), + t_non_neg_integer()]); + ['min_bin_vheap_size'] -> + t_tuple([t_atom('min_bin_vheap_size'), + t_non_neg_integer()]); ['multi_scheduling'] -> t_system_multi_scheduling(); ['multi_scheduling_blockers'] -> @@ -1594,6 +1614,8 @@ type(erlang, system_info, 1, Xs) -> t_non_neg_fixnum(), t_non_neg_fixnum()]), t_string()); + ['otp_release'] -> + t_string(); ['process_count'] -> t_non_neg_fixnum(); ['process_limit'] -> @@ -1623,6 +1645,8 @@ type(erlang, system_info, 1, Xs) -> t_non_neg_fixnum(); ['trace_control_word'] -> t_integer(); + ['update_cpu_info'] -> + t_sup([t_atom('changed'), t_atom('unchanged')]); ['version'] -> t_string(); ['wordsize'] -> @@ -3738,8 +3762,13 @@ arg_types(erlang, pre_loaded, 0) -> arg_types(erlang, process_display, 2) -> [t_pid(), t_atom('backtrace')]; arg_types(erlang, process_flag, 2) -> - [t_sup([t_atom('trap_exit'), t_atom('error_handler'), - t_atom('min_heap_size'), t_atom('priority'), t_atom('save_calls'), + [t_sup([t_atom('trap_exit'), + t_atom('error_handler'), + t_atom('min_heap_size'), + t_atom('min_bin_vheap_size'), + t_atom('priority'), + t_atom('save_calls'), + t_atom('sensitive'), t_atom('scheduler'), % undocumented t_atom('monitor_nodes'), % undocumented t_tuple([t_atom('monitor_nodes'), t_list()])]), % undocumented @@ -3852,6 +3881,7 @@ arg_types(erlang, system_flag, 2) -> t_atom('display_items'), % undocumented t_atom('fullsweep_after'), t_atom('min_heap_size'), + t_atom('min_bin_vheap_size'), t_atom('multi_scheduling'), t_atom('schedulers_online'), t_atom('scheduler_bind_type'), @@ -4724,6 +4754,7 @@ t_spawn_options() -> t_atom('monitor'), t_tuple([t_atom('priority'), t_process_priority_level()]), t_tuple([t_atom('min_heap_size'), t_fixnum()]), + t_tuple([t_atom('min_bin_vheap_size'), t_fixnum()]), t_tuple([t_atom('fullsweep_after'), t_fixnum()])]). t_spawn_opt_return(List) -> @@ -4812,6 +4843,17 @@ t_system_profile_return() -> t_sup(t_atom('undefined'), t_tuple([t_sup(t_pid(), t_port()), t_system_profile_options()])). +t_system_build_type_return() -> + t_sup([t_atom('opt'), + t_atom('debug'), + t_atom('purify'), + t_atom('quantify'), + t_atom('purecov'), + t_atom('gcov'), + t_atom('valgrind'), + t_atom('gprof'), + t_atom('lcnt')]). + %% ===================================================================== %% These are used for the built-in functions of 'ets' %% ===================================================================== diff --git a/lib/hipe/doc/Makefile b/lib/hipe/doc/Makefile index cdf9c9c798..e28b16c12e 100644 --- a/lib/hipe/doc/Makefile +++ b/lib/hipe/doc/Makefile @@ -24,6 +24,9 @@ include $(ERL_TOP)/make/$(TARGET)/otp.mk clean: -rm -f *.html edoc-info stylesheet.css erlang.png +distclean: clean +realclean: clean + # ---------------------------------------------------- # Special Build Targets # ---------------------------------------------------- diff --git a/lib/hipe/doc/src/Makefile b/lib/hipe/doc/src/Makefile index d440178e4c..065854e8a7 100644 --- a/lib/hipe/doc/src/Makefile +++ b/lib/hipe/doc/src/Makefile @@ -97,6 +97,9 @@ clean clean_docs: rm -f $(TOP_PDF_FILE) $(TOP_PDF_FILE:%.pdf=%.fo) rm -f errs core *~ +distclean: clean +realclean: clean + # ---------------------------------------------------- # Release Target # ---------------------------------------------------- diff --git a/lib/hipe/flow/Makefile b/lib/hipe/flow/Makefile index bbe8ef8666..e8d570ac48 100644 --- a/lib/hipe/flow/Makefile +++ b/lib/hipe/flow/Makefile @@ -82,6 +82,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/icode/Makefile b/lib/hipe/icode/Makefile index bd6436c8b3..e57daecfbc 100644 --- a/lib/hipe/icode/Makefile +++ b/lib/hipe/icode/Makefile @@ -100,6 +100,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/main/Makefile b/lib/hipe/main/Makefile index a14c9c3ca4..d49dd6f424 100644 --- a/lib/hipe/main/Makefile +++ b/lib/hipe/main/Makefile @@ -93,6 +93,9 @@ clean: rm -f $(TARGET_FILES) $(DOC_FILES) $(HRL_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/main/hipe.app.src b/lib/hipe/main/hipe.app.src index e5d6d1e540..c05aec4c4a 100644 --- a/lib/hipe/main/hipe.app.src +++ b/lib/hipe/main/hipe.app.src @@ -74,7 +74,6 @@ hipe_arm_specific, hipe_bb, hipe_beam_to_icode, - hipe_ceach, hipe_coalescing_regalloc, hipe_consttab, hipe_data_pp, diff --git a/lib/hipe/main/hipe.erl b/lib/hipe/main/hipe.erl index 309d847374..1be679a13f 100644 --- a/lib/hipe/main/hipe.erl +++ b/lib/hipe/main/hipe.erl @@ -574,12 +574,8 @@ file(File, Options) when is_atom(File) -> disasm(File) -> case beam_disasm:file(File) of #beam_file{labeled_exports = LabeledExports, - compile_info = CompInfo0, + compile_info = CompInfo, code = BeamCode} -> - CompInfo = case CompInfo0 of - none -> []; - _ -> CompInfo0 - end, CompOpts = proplists:get_value(options, CompInfo, []), HCompOpts = case lists:keyfind(hipe, 1, CompOpts) of {hipe, L} when is_list(L) -> L; diff --git a/lib/hipe/native.mk b/lib/hipe/native.mk index 6f4602477b..738e78e556 100644 --- a/lib/hipe/native.mk +++ b/lib/hipe/native.mk @@ -1,5 +1,7 @@ -ifndef SECONDARY_BOOTSTRAP ifeq ($(NATIVE_LIBS_ENABLED),yes) +ifndef SECONDARY_BOOTSTRAP ERL_COMPILE_FLAGS += +native +else +EBIN = ../boot_ebin endif endif diff --git a/lib/hipe/opt/Makefile b/lib/hipe/opt/Makefile index 4596201801..8e244ab360 100644 --- a/lib/hipe/opt/Makefile +++ b/lib/hipe/opt/Makefile @@ -80,6 +80,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/ppc/Makefile b/lib/hipe/ppc/Makefile index f24139e34b..83376e8d9d 100644 --- a/lib/hipe/ppc/Makefile +++ b/lib/hipe/ppc/Makefile @@ -92,6 +92,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/regalloc/Makefile b/lib/hipe/regalloc/Makefile index 386f3589c6..c327b443b0 100644 --- a/lib/hipe/regalloc/Makefile +++ b/lib/hipe/regalloc/Makefile @@ -94,6 +94,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/rtl/Makefile b/lib/hipe/rtl/Makefile index 48086ec79f..30026831b7 100644 --- a/lib/hipe/rtl/Makefile +++ b/lib/hipe/rtl/Makefile @@ -89,6 +89,9 @@ clean: rm -f $(TARGET_FILES) rm -f core erl_crash.dump +distclean: clean +realclean: clean + # ---------------------------------------------------- # Special Build Targets # ---------------------------------------------------- diff --git a/lib/hipe/sparc/Makefile b/lib/hipe/sparc/Makefile index f25212a89b..e3acecdcb8 100644 --- a/lib/hipe/sparc/Makefile +++ b/lib/hipe/sparc/Makefile @@ -92,6 +92,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/util/Makefile b/lib/hipe/util/Makefile index 85719ec3d6..7d1a7c01c7 100644 --- a/lib/hipe/util/Makefile +++ b/lib/hipe/util/Makefile @@ -85,6 +85,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop diff --git a/lib/hipe/x86/Makefile b/lib/hipe/x86/Makefile index d7d0c7bf5a..aed757246f 100644 --- a/lib/hipe/x86/Makefile +++ b/lib/hipe/x86/Makefile @@ -100,6 +100,9 @@ clean: rm -f $(TARGET_FILES) rm -f core +distclean: clean +realclean: clean + $(DOCS)/%.html:%.erl erl -noshell -run edoc_run file '"$<"' '[{dir, "$(DOCS)"}]' -s init stop |