aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe
AgeCommit message (Collapse)Author
2015-01-19Merge branch 'maint'Marcus Arendt
2015-01-11hipe: rtl: fix phi_remove_pred/2 FP movesMikael Pettersson
hipe_rtl:phi_remove_pred/2 can produce a #move{} instruction with floating-point temporaries as operands, even though such moves MUST be #fmove{} instructions. Added type checks to the #move{} and #fmove{} constructor and setter functions to ensure that similar mishaps cannot happen again.
2015-01-11hipe: backends: correct #fconv{} translationMikael Pettersson
RTL can produce an #fconv{} instruction with an immediate operand, but the backends unconditionally access the operand as a temporary. This results in broken representation in the backends and eventually they crash.
2014-12-18Merge branch 'maint'Bruce Yinhe
2014-12-18Merge branch 'haguenau/fix-endianness-speling' into maintBruce Yinhe
* haguenau/fix-endianness-speling: Replaced "Endianess" with "Endianness" everywhere
2014-12-10Merge tag 'OTP-17.4'Marcus Arendt
=== OTP-17.4 === Changed Applications: - asn1-3.0.3 - common_test-1.9 - compiler-5.0.3 - crypto-3.4.2 - debugger-4.0.2 - dialyzer-2.7.3 - diameter-1.8 - edoc-0.7.16 - eldap-1.1 - erl_docgen-0.3.7 - erl_interface-3.7.20 - erts-6.3 - eunit-2.2.9 - hipe-3.11.2 - inets-5.10.4 - jinterface-1.5.12 - kernel-3.1 - megaco-3.17.3 - mnesia-4.12.4 - observer-2.0.3 - odbc-2.10.22 - otp_mibs-1.0.10 - parsetools-2.0.12 - percept-0.8.10 - runtime_tools-1.8.15 - snmp-5.1.1 - ssh-3.1 - ssl-5.3.8 - stdlib-2.3 - syntax_tools-1.6.17 - test_server-3.7.2 - tools-2.7.1 - wx-1.3.2 Unchanged Applications: - cosEvent-2.1.15 - cosEventDomain-1.1.14 - cosFileTransfer-1.1.16 - cosNotification-1.1.21 - cosProperty-1.1.17 - cosTime-1.1.14 - cosTransactions-1.2.14 - et-1.5 - gs-1.5.16 - ic-4.3.6 - orber-3.7.1 - os_mon-2.3 - ose-1.0.2 - public_key-0.22.1 - reltool-0.6.6 - sasl-2.4.1 - typer-0.9.8 - webtool-0.8.10 - xmerl-1.3.7 Conflicts: OTP_VERSION erts/vsn.mk
2014-12-09Prepare releaseErlang/OTP
2014-12-02Replaced "Endianess" with "Endianness" everywhereDavid Haguenauer
2014-11-25Merge branch 'maint'Bruce Yinhe
2014-11-07Fix typo in llvm/elf_format.hrlGarret Smith
2014-09-17Merge tag 'OTP-17.3'Henrik Nord
=== OTP-17.3 === Changed Applications: - asn1-3.0.2 - common_test-1.8.2 - compiler-5.0.2 - crypto-3.4.1 - dialyzer-2.7.2 - diameter-1.7.1 - edoc-0.7.15 - erl_docgen-0.3.6 - erl_interface-3.7.18 - erts-6.2 - eunit-2.2.8 - hipe-3.11.1 - ic-4.3.6 - inets-5.10.3 - jinterface-1.5.10 - kernel-3.0.3 - megaco-3.17.2 - mnesia-4.12.3 - observer-2.0.2 - odbc-2.10.21 - os_mon-2.3 - ose-1.0.1 - public_key-0.22.1 - sasl-2.4.1 - snmp-5.1 - ssh-3.0.5 - ssl-5.3.6 - stdlib-2.2 - tools-2.7 - wx-1.3.1 Unchanged Applications: - cosEvent-2.1.15 - cosEventDomain-1.1.14 - cosFileTransfer-1.1.16 - cosNotification-1.1.21 - cosProperty-1.1.17 - cosTime-1.1.14 - cosTransactions-1.2.14 - debugger-4.0.1 - eldap-1.0.3 - et-1.5 - gs-1.5.16 - orber-3.7 - otp_mibs-1.0.9 - parsetools-2.0.11 - percept-0.8.9 - reltool-0.6.6 - runtime_tools-1.8.14 - syntax_tools-1.6.16 - test_server-3.7.1 - typer-0.9.8 - webtool-0.8.10 - xmerl-1.3.7 Conflicts: OTP_VERSION erts/vsn.mk
2014-09-15Update release notesErlang/OTP
2014-09-15Update version numbersErlang/OTP
2014-08-21Merge branch 'maint'Hans Bolinder
* maint: dialyzer, hipe: Fix a bug concerning is_record/2,3
2014-08-21dialyzer, hipe: Fix a bug concerning is_record/2,3Hans Bolinder
Also fixed some cases where Dialyzer could crash due to reaching system limits.
2014-06-30Merge branch 'maint'Hans Bolinder
* maint: hipe: Correct pretty-printing of bitstrings
2014-06-26hipe: Correct pretty-printing of bitstringsHans Bolinder
2014-06-24Merge tag 'OTP-17.1'Marcus Arendt
=== OTP-17.1 === Changed Applications: - asn1-3.0.1 - common_test-1.8.1 - compiler-5.0.1 - crypto-3.4 - debugger-4.0.1 - dialyzer-2.7.1 - diameter-1.7 - erl_interface-3.7.17 - erts-6.1 - hipe-3.11 - inets-5.10.2 - kernel-3.0.1 - mnesia-4.12.1 - observer-2.0.1 - reltool-0.6.6 - ssh-3.0.3 - ssl-5.3.5 - stdlib-2.1 - syntax_tools-1.6.15 - test_server-3.7.1 - tools-2.6.15 - typer-0.9.8 - wx-1.3 Unchanged Applications: - cosEvent-2.1.15 - cosEventDomain-1.1.14 - cosFileTransfer-1.1.16 - cosNotification-1.1.21 - cosProperty-1.1.17 - cosTime-1.1.14 - cosTransactions-1.2.14 - edoc-0.7.13 - eldap-1.0.3 - erl_docgen-0.3.5 - et-1.5 - eunit-2.2.7 - gs-1.5.16 - ic-4.3.5 - jinterface-1.5.9 - megaco-3.17.1 - odbc-2.10.20 - orber-3.6.27 - os_mon-2.2.15 - ose-1.0 - otp_mibs-1.0.9 - parsetools-2.0.11 - percept-0.8.9 - public_key-0.22 - runtime_tools-1.8.14 - sasl-2.4 - snmp-4.25.1 - webtool-0.8.10 - xmerl-1.3.7
2014-06-19Prepare releaseErlang/OTP
2014-06-18Merge branch 'maint'Björn-Egil Dahlberg
2014-06-18Merge branch 'egil/fix-doc-links' into maintBjörn-Egil Dahlberg
* egil/fix-doc-links: doc: Fix broken links in Installation Guide doc: Fix broken links
2014-06-17Merge branch 'maint'Hans Bolinder
* maint: [dialyzer] Correct a doc bug introduced in 0b041238 [dialyzer] Use the option 'dialyzer' to control the compiler [dialyzer] Fix handling of literal records
2014-06-17doc: Fix broken linksBjörn-Egil Dahlberg
2014-06-17[dialyzer] Fix handling of literal recordsHans Bolinder
This ticket is about records in Erlang code, and when to check the fields against the (optional) types given when defining records. Dialyzer operates on the Erlang Core format, where there are no trace of records. The fix implemented is a Real Hack: Given the new option 'dialyzer' erl_expand_records marks the line number of records in a way that is undone by v3_core, which in turn inserts annotations that can be recognized by Dialyzer.
2014-05-26Merge branch 'maint'Björn-Egil Dahlberg
2014-05-26Merge branch 'egil/fix-maps-pretty-layout/OTP-11947' into maintBjörn-Egil Dahlberg
* egil/fix-maps-pretty-layout/OTP-11947: dialyzer: Add Maps type mismatch test hipe,compiler: Fix Map literals pretty printing
2014-05-26Merge branch 'maint'Hans Bolinder
* maint: hipe: fix a bug concerning typed record fields
2014-05-23hipe: fix a bug concerning typed record fieldsHans Bolinder
2014-05-13Merge branch 'maint'Hans Bolinder
* maint: hipe: fix a bug concerning typed record fields
2014-05-13hipe: fix a bug concerning typed record fieldsHans Bolinder
When checking typed record fields Dialyzer failed to handle types containing remote types. Thanks to Erik Søe Sørensen for reporting this bug.
2014-05-09Merge branch 'maint'Björn-Egil Dahlberg
2014-05-09Merge branch 'ks/hipe-map-support/OTP-11900' into maintBjörn-Egil Dahlberg
* ks/hipe-map-support/OTP-11900: Add five new test files for maps in the HiPE test suite Copy the tests for maps from the compiler application to a new HiPE test suite Translate the put_map_assoc and put_map_exact BEAM instructions to ICode Translate the has_map_fields and get_map_elements BEAM instructions to ICode
2014-05-05Remove pre-defined types dict(), digraph(), &cHans Bolinder
The pre-defined types array(), dict(), digraph(), gb_set(), gb_tree(), queue(), set(), and tid() have been removed.
2014-04-29Add five new test files for maps in the HiPE test suiteKostis Sagonas
2014-04-29Copy the tests for maps from the compiler application to a new HiPE test suiteMagnus Lång
Change the maps_guard_fun test to accept the HiPE trace format.
2014-04-29Translate the put_map_assoc and put_map_exact BEAM instructions to ICodeErik Norgren
2014-04-29Translate the has_map_fields and get_map_elements BEAM instructions to ICodeKostis Sagonas
2014-04-29Allow more type namesHans Bolinder
product/_, union/_, range/2 as well as tuple/N (N > 0), map/N (N > 0), atom/1, integer/1, binary/2, record/_, and 'fun'/_ can now be used as type names.
2014-04-28hipe,compiler: Fix Map literals pretty printingBjörn-Egil Dahlberg
2014-04-17hipe, dialyzer: Fix a bug concerning opaque typesHans Bolinder
Dialyzer sometimes output warnings like Attempt to test for inequality between a term of type 'false' and a term of opaque type 'false' | gb_set() The reason was that erl_types:t_inf/3 when called from erl_types:t_find_unknown_opaque() did not return 'false' but found the mismatch. It should not return the mismatch unless the intersection is empty ('none'). Thanks to Shayan Pooya [[email protected]] for pointing out the bug.
2014-04-07Update release notesErlang/OTP
2014-04-01Merge branch 'yiannist/erllvm-fixes'Sverker Eriksson
* yiannist/erllvm-fixes: Fix frame size adjustment of stack descriptors Fix counting of arguments of closures Check for required LLVM version or issue error
2014-03-31Merge branch 'kostis/hipe-test-fix'Sverker Eriksson
* kostis/hipe-test-fix: Add support for testing the LLVM backend too Ensure generated modules are properly included in the Emakefile
2014-03-30Fix frame size adjustment of stack descriptorsYiannis Tsiouris
In case of function calls with arguments that are passed to the stack, the frame size of corresponding stack descriptors needs to be reduced by the number of stack arguments. This commit fixes a bug in this adjustment which was caused by an incorrect check.
2014-03-30Fix counting of arguments of closuresChristos Stavrakakis
Do not rely on MFA name for the arity of functions, since closures have an extra argument. Instead, just use the length of the arguments list.
2014-03-30Check for required LLVM version or issue errorYiannis Tsiouris
This checks that a required LLVM version (i.e. 3.4 or greater) appears in $PATH when 'to_llvm' flag is used; in case of failure, abort compilation with an error.
2014-03-28Add support for the compilation of the is_map/1 guard to native codeKostis Sagonas
Namely, extend the HiPE tagging scheme info, properly handle the translation of the (is_)map type test to Icode and RTL and support handling of the map() type in the type system. While at it, also performed some clean up of things that needed small fixes.
2014-03-28Add 'map' to the set of icode_type_test()sKostis Sagonas
2014-03-28Support the translation of the is_map BEAM instruction to IcodeKostis Sagonas
2014-03-26Merge branch 'aronisstav/hipe/opaque_fix'Hans Bolinder
* aronisstav/hipe/opaque_fix: Don't 'opaque-decorate' a success typing using an incompatible spec