aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe
AgeCommit message (Collapse)Author
2011-12-09Update copyright yearsBjörn-Egil Dahlberg
2011-12-09Merge branch 'hb/hipe/unify_optimization/OTP-9768'Hans Bolinder
* hb/hipe/unify_optimization/OTP-9768: Optimize erl_types:t_unify()
2011-12-08Merge branch 'egil/file-info-opt-utc/OTP-7687'Björn-Egil Dahlberg
* egil/file-info-opt-utc/OTP-7687: (39 commits) Remove time_t specific test in prim_file_SUITE Update prim_file.beam and prim_zip.beam Add types for posixtime_to_universaltime and the reverse Set BASEYEAR to 1902 Set lower limit of years handled to 1601 Emulate localtime, gmtime and mktime to enable negative time_t Document file:*_file_info/2 Fix compiler warning in unix_efile.c Change name of bif universaltime_to_seconds/1 Change options to prim_file:*_file_info/* Remove dead code Catch errors from prim_file:*_file_info Testcase for utc <-> seconds conversion Fix negative time in seconds_to_universaltime/1 Remove OS taint from datetime conversion Add utc <-> seconds conversions bifs Let prim_file validate ctime in file_info Teach #file_info spec unix epochs for file times Add file_info_opt tests in prim_file_SUITE unix_efile: Zero is a valid number in utime ... Conflicts: erts/emulator/beam/erl_time_sup.c erts/emulator/sys/win32/erl_win_sys.h erts/emulator/sys/win32/sys_time.c
2011-12-08Add types for posixtime_to_universaltime and the reversePatrik Nyblom
2011-12-08Optimize erl_types:t_unify()Hans Bolinder
Using a list rather than a dict() for unified variables saves quite some time. In particular Dialyzer is a heavy user of t_unify().
2011-12-05Fix misspelling of chosenTuncer Ayaz
2011-12-05Fix misspelling of 'turn off'Tuncer Ayaz
2011-12-05Merge branch 'sa/dialyzer-fixes'Henrik Nord
* sa/dialyzer-fixes: Correct callback spec in application module Refine warning about callback specs with extra ranges Cleanup autoimport compiler directives Fix Dialyzer's warnings in typer Fix Dialyzer's warning for its own code Fix bug in Dialyzer's behaviours analysis Fix crash in Dialyzer OTP-9776
2011-12-01Fix crash in DialyzerStavros Aronis
Variable substitution was not generalizing any unknown variables.
2011-12-01Merge branch 'bjorn/dialyzer-warnings'Björn Gustavsson
* bjorn/dialyzer-warnings: erlang: Eliminate a clause in aa_mem_data/2 that can never match Add type info for erlang:system_info({allocator_sizes,ref(),any()})
2011-11-30Add type info for erlang:system_info({allocator_sizes,ref(),any()})Björn Gustavsson
2011-11-30Fix Dialyzer's warnings in HiPEStavros Aronis
2011-11-28Merge branch 'bjorn/compiler/options/OTP-9752'Björn Gustavsson
* bjorn/compiler/options/OTP-9752: filename documentation: Recommend against using filename:find_src/1,2 Teach filename:find_src/1,2 to handle slim or stripped BEAM files filename: Eliminate failing call to Mod:module_info(source_file) filename.erl:filter_options/1: Remove handling of dead options compiler: Don't include {cwd,_} in module_info(compile) compiler: Don't include source code options in module_info(compile) hipe: Teach hipe to handle slim or stripped BEAM files
2011-11-28hipe: Remove single function compilationBjörn Gustavsson
Compiling single functions (as opposed to whole modules) to native code complicates code management in HiPE. It would also vastly complicate whole-module optimizations, such as returning multiple return values instead of tuples within a module. As a first step, remove the external interface for the single compilation feature. In the future, there are many things that could be restructured and simplified.
2011-11-24hipe: Teach hipe to handle slim or stripped BEAM filesBjörn Gustavsson
2011-11-22Revert "Update version numbers for pre-release of R15"Björn-Egil Dahlberg
This reverts commit e21ff9b0b69219ab3853be7e80813156113152b7.
2011-11-22Update version numbers for pre-release of R15OTP_R15ABjörn Gustavsson
2011-11-17hipe,erts: Allow hipe without floating point exceptionsSverker Eriksson
2011-11-17hipe: Fix bug in hipe_rtl_lcm:calc_killed_expr_bbSverker Eriksson
Bug causing hipe to crash. Only provoked when changing the RTL generation for floating point operations. hipe_rtl:defines() was called with a expression ID instead of an expression. Use expr_id_map_get_expr() to get expression from ID. Need to pass along IdMap in order to do that.
2011-11-10Remove exec bit from: erl, hrl, xml, html, asn, gif, xpmRicardo Catalinas Jiménez
2011-11-09Merge branch 'sverk/bif-args/OTP-9662'Sverker Eriksson
* sverk/bif-args/OTP-9662: erts,hipe: Limited support for hipe cross compilation erts-hipe: Change THE_NON_VALUE for HiPE enabled debug emulator erts-hipe: Enable debug compiled hipe-VM with lock checker erts-hipe: Rename fail_bif_interface_0 to standard_bif_interface_0 erts-hipe: Deliberate leak of native fun entries erts-hipe: Fix new trap conventions for x86, amd64 and ppc Store the trap address in p->i Store the trap arguments in the X register array erts-hipe: Make some primops use new BIF calling convention erts-hipe: Adapt generated BIF wrappers for new calling convention erts-hipe: Remove obscuring macros in generated assembler code erts-hipe: Make hipe enabled emulator compile with new BIF calls Simplify the instructions for calling BIFs Change the calling convention for BIFs Use the proper macros in all BIFs Conflicts: erts/emulator/beam/bif.h erts/emulator/beam/erl_bif_info.c
2011-11-09erts,hipe: Limited support for hipe cross compilationSverker Eriksson
Normally hipe assumes that generated native code will be executed on the same emulator as the hipe compiler is running on. This commit allows you to build a hipe "cross-compiler" for a different configured emulator (but for same architecture). Example: > cd lib/hipe > make clean > make XCOMP=yes FLAVOR=smp TYPE=debug This hipe compiler will generate code to be executed on the debug compiled smp-emulator at $ERL_TOP.
2011-10-27Remove unused */doc/src/make.dep filesBjörn Gustavsson
These dependency files was once used when building the documentation, but are no longer needed.
2011-10-04Merge branch 'dev' into majorBjörn-Egil Dahlberg
2011-10-04Prepare releaseOTP_R14B04Erlang/OTP
2011-09-29Merge branch 'dev' into majorBjörn-Egil Dahlberg
* dev: Update copyright years
2011-09-29Update copyright yearsBjörn-Egil Dahlberg
2011-09-29Merge branch 'dev' into majorHenrik Nord
2011-09-29Merge branch 'sa/dialyzer-bug-fixes' into devHenrik Nord
* sa/dialyzer-bug-fixes: Fix typer's crash for nonexisting files Remove unused macro Decrease tuple arity limit Fix bug in dataflow OTP-9597
2011-09-27Remove unused macroStavros Aronis
2011-09-27Decrease tuple arity limitStavros Aronis
This fixes a memory related crash.
2011-09-21Merge branch 'dev' into majorHenrik Nord
2011-09-21Merge branch 'ta/typer-quote-atoms' into devHenrik Nord
* ta/typer-quote-atoms: Update Dialyzer's reference results Quote atoms if necessary in types OTP-9560
2011-09-21Merge branch 'dev' into majorBjörn Gustavsson
* dev: erl_bif_types: Fix types for lists:key{search,find,member}/3 Fix build problems on MacOS 10.7 (Lion)
2011-09-21Merge branch 'bjorn/erl_bif_types/OTP-9496' into devBjörn Gustavsson
* bjorn/erl_bif_types/OTP-9496: erl_bif_types: Fix types for lists:key{search,find,member}/3
2011-09-21erl_bif_types: Fix types for lists:key{search,find,member}/3Björn Gustavsson
The types for lists:key{search,find,member}/3 was computed under the assumption that the key should be matched (=:=) to the keys in the list, while the actual implementation uses comparison (==). Thus erl_bif_types:types/4 would wrongly report that lists:keyfind(42, 1, [{42.0,a}]) would always return 'false'.
2011-09-20Merge branch 'dev' into majorHenrik Nord
Conflicts: erts/aclocal.m4 erts/include/internal/ethread_header_config.h.in
2011-09-20Merge branch 'pg/fix-hipe-bs_get_float2' into devHenrik Nord
* pg/fix-hipe-bs_get_float2: Fix bug with binary pattern matching of floats of variable size OTP-9556
2011-09-20Merge branch 'ta/docs-fixes' into devHenrik Nord
* ta/docs-fixes: Fix misspelling of intermediate Fix typos in erts/preloaded/src Fix more misspellings of compatibility Fix misspelling of kept Fix misspelling of compatibility in ssl_basic_SUITE Fix misspelling of compatibility Fix misspelling of accommodate Fix misspelling of exceed Fix misspelling of accidentally Fix misspelling of erroneous in xmerl_xsd Fix misspelling of erroneous Fix misspelling of successful Fix typos in instrument(3) Fix typos in dbg(3) dialyzer: fix a small typo in list_to_bitstring test Fix typos in cover.erl Fix typos (variable name) in erl_nif(3) Fix typos in mod_esi(3) Fix trivial typos in erlang(3) OTP-9555
2011-09-16Merge branch 'dev' into majorBjörn-Egil Dahlberg
* dev: Cleanup ETS bif's in hipe:erl_bif_types.erl (for dialyzer) Conflicts: erts/emulator/beam/erl_db.c
2011-09-16Quote atoms if necessary in typesTomas Abrahamsson
Atoms in some occurrences were not correctly quoted when formatted to strings, for instance by the typer program. Example: -module(tb). -export(['UPPERCASE-FUNCTION-NAME'/0, f1/0, f2/0, f3/0]). -record('UPPERCASE-RECORD-NAME', {x}). -record(r2, {'UPPERCASE-FIELD-NAME'}). -type 'UPPERCASE-TYPE-NAME'() :: integer(). 'UPPERCASE-FUNCTION-NAME'() -> ok. f1() -> #'UPPERCASE-RECORD-NAME'{x=1}. f2() -> #r2{'UPPERCASE-FIELD-NAME'=1}. -spec f3() -> 'UPPERCASE-TYPE-NAME'(). f3() -> 1. Given the program above, the output from typer --plt some.plt tb.erl resulted in the following specs being printed: -spec UPPERCASE-FUNCTION-NAME() -> 'ok'. -spec f1() -> #UPPERCASE-RECORD-NAME{x::1}. -spec f2() -> #r2{UPPERCASE-FIELD-NAME::1}. -spec f3() -> UPPERCASE-TYPE-NAME(). This commit changes the output to become the following: -spec 'UPPERCASE-FUNCTION-NAME'() -> 'ok'. -spec f1() -> #'UPPERCASE-RECORD-NAME'{x::1}. -spec f2() -> #r2{'UPPERCASE-FIELD-NAME'::1}. -spec f3() -> 'UPPERCASE-TYPE-NAME'().
2011-09-15Fix more misspellings of compatibilityTuncer Ayaz
2011-09-15Fix misspelling of successfulTuncer Ayaz
2011-09-12Cleanup ETS bif's in hipe:erl_bif_types.erl (for dialyzer)Patrik Nyblom
2011-09-08Merge branch 'dev' into majorHenrik Nord
2011-09-08Merge branch 'sa/dialyzer-dev' into devHenrik Nord
* sa/dialyzer-dev: Add origin information to #fun_var closures Suppress some warnings about generation of non-returning funs Enhance Dialyzer's inference on comparisons Fix infinite loop in dataflow Minor fix in dead code Update r9c/{inets,mnesia} results in dialyzer's test suite OTP-9529
2011-09-08Merge branch 'fm/external_size_2' into devHenrik Nord
* fm/external_size_2: Add erlang:external_size/2 BIF OTP-9528
2011-09-05Fix bug with binary pattern matching of floats of variable sizePaul Guyot
Pattern matching of floats with variable size (<<F:S/float>>) did always fail. Judging from similar code for ints, this bug is simply a typo.
2011-09-01Merge branch 'dev' into majorHenrik Nord
2011-09-01Merge branch 'ta/hipe_cleanup' into devHenrik Nord
* ta/hipe_cleanup: Clean up hipe.hrl.src (Signed-off-by: Kostis) OTP-9511