aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe
AgeCommit message (Collapse)Author
2019-05-10Prepare releaseErlang/OTP
2019-04-29dialyzer: Add parentheses around annotated union elementsHans Bolinder
In contracts, annotated elements of unions are printed with parentheses around them. They are not parseable otherwise.
2019-04-24Revert "Prepare release"Rickard Green
This reverts commit 425889ba69b69a9b6fb14bfbef121d51b78e853a.
2019-04-23Prepare releaseErlang/OTP
2019-04-10hipe: Remove mention of `no_bsm3` flagJohn Högberg
This was only intended to be documented during OTP 22's testing phase and we're nearing its release now. In addition to that it wasn't a complete fix as modules compiled with HiPE+no_bsm3 tended to crash the emulator at runtime.
2019-03-26Revert "Prepare release"Henrik Nord
This reverts commit 0118046f9bda8dcf3594184fa439b79267db8017.
2019-03-25Prepare releaseErlang/OTP
2019-03-21Merge branch 'bjorn/hipe-compilation/OTP-15596'Björn Gustavsson
* bjorn/hipe-compilation/OTP-15596: HiPE: Don't fail the compilation for unimplemented instructions
2019-03-20HiPE: Don't fail the compilation for unimplemented instructionsBjörn Gustavsson
2019-03-12Merge branch 'maint'Henrik Nord
* maint: Updated OTP version Prepare release
2019-03-11Prepare releaseErlang/OTP
2019-02-27Revert "Prepare release"Rickard Green
This reverts commit df130102cdeca8d35fec95a0c926fd1cfec54eab.
2019-02-26Prepare releaseErlang/OTP
2019-02-25Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Fix maps as parameter of opaque types dialyzer: Fix key check of lists:key{search,member,find}()
2019-02-21dialyzer: Fix maps as parameter of opaque typesHans Bolinder
The clause added for maps in commit 1a7c41be is corrected.
2019-02-21dialyzer: Fix key check of lists:key{search,member,find}()Hans Bolinder
Replace integers and floats with t_number() since keysearch et al compare the key (rather than match). Corrects the commit b3c8e94.
2019-02-11Merge branch 'maint'Hans Bolinder
* maint: dialyzer: Fix a bug affecting keyfind/keysearch/keymember
2019-02-08dialyzer: Fix a bug affecting keyfind/keysearch/keymemberHans Bolinder
2018-12-11Merge branch 'maint'Henrik Nord
* maint: Updated OTP version Prepare release
2018-12-10Prepare releaseErlang/OTP
2018-10-29Merge pull request #2005 from kostis/hipe-hipe-spec-cleanupsBjörn Gustavsson
hipe: Cleanup and fix specs of the hipe module
2018-10-25Merge PR-1963 from iblis17/ib/fbsd-hipe OTP-15386Sverker Eriksson
hipe_llvm_main: fix tmpfs dir on FreeBSD
2018-10-25Merge PR-1986 from kostis/hipe-ErLLVM-check OTP-15385Sverker Eriksson
HiPE: Fix check for when ErLLVM is available
2018-10-25hipe: Cleanup and fix specs of the hipe moduleKostis Sagonas
There was a lot of confusion between file vs. module names in the function specification of the hipe module (as also discovered by #1992) and this PR cleans up and fixes them.
2018-10-24Merge branch 'maint'Björn Gustavsson
* maint: beam_lib: Remove obsolete module() from the beam() type hipe: Don't use beam_lib:info/1 with an atom as filename Honor the max heap size when copying literals after purging
2018-10-19hipe: Don't use beam_lib:info/1 with an atom as filenameBjörn Gustavsson
2018-10-15HiPE: Fix check for when ErLLVM is availableKostis Sagonas
The previous check whether ErLLVM could be enabled and/or tested simply checked whether a suitable version of the LLVM tool chain was present in the path. Obviously this is not enough: there should also be a check that we are running in an architecture on which the ErLLVM compiler has been ported. Fix the function that provides this functionality and also rename it in order to more appropriately describe what it does. In principle, this change introduces a backwards incompatibility as the function is one of those exported by the `hipe' module, but this function was not documented and the chances that it has been used somewhere else that the test suite are pretty low (if not zero).
2018-09-28Merge pull request #1958 from jhogberg/john/compiler/ssa-bsm-optJohn Högberg
Rewrite BSM optimizations in the new SSA-based intermediate format
2018-09-28hipe: Document new limitations and disable known failing testsJohn Högberg
2018-09-27update commentIblis Lin
2018-09-26hipe_llvm_main: fix tmpfs dir on FreeBSDIblis Lin
Upstream this patch from FreeBSD Ports: https://svnweb.freebsd.org/ports/head/lang/erlang-runtime21/files/patch-lib_hipe_llvm_hipe__llvm__main.erl?revision=473434&view=markup
2018-09-25Merge branch 'maint'Henrik Nord
2018-09-24Prepare releaseErlang/OTP
2018-09-21Merge branch 'maint'Henrik Nord
2018-09-21Update copyright yearHenrik Nord
2018-09-03Introduce a put_tuple2 instructionBjörn Gustavsson
Sometimes when building a tuple, there is no way to avoid an extra `move` instruction. Consider this code: make_tuple(A) -> {ok,A}. The corresponding BEAM code looks like this: {test_heap,3,1}. {put_tuple,2,{x,1}}. {put,{atom,ok}}. {put,{x,0}}. {move,{x,1},{x,0}}. return. To avoid overwriting the source register `{x,0}`, a `move` instruction is necessary. The problem doesn't exist when building a list: %% build_list(A) -> [A]. {test_heap,2,1}. {put_list,{x,0},nil,{x,0}}. return. Introduce a new `put_tuple2` instruction that builds a tuple in a single instruction, so that the `move` instruction can be eliminated: %% make_tuple(A) -> {ok,A}. {test_heap,3,1}. {put_tuple2,{x,0},{list,[{atom,ok},{x,0}]}}. return. Note that the BEAM loader already combines `put_tuple` and `put` instructions into an internal instruction similar to `put_tuple2`. Therefore the introduction of the new instruction will not speed up execution of tuple building itself, but it will be less work for the loader to load the new instruction.
2018-08-17hipe_beam_to_icode: Correct translation of get_map_elementsBjörn Gustavsson
If one of the destination registers for get_map_elements is the same as the map source, extract that element last.
2018-07-27Change "can not" into "cannot"Raimo Niskanen
I did not find any legitimate use of "can not", however skipped changing e.g RFCs archived in the source tree.
2018-07-27Remove newline between can and notRaimo Niskanen
After this whitespace modification there should be no "can not"s separated by a newline in the entire OTP repository, so to find them all a simple git grep will do just fine.
2018-07-13docs: make clean all XMLDIRLukas Larsson
2018-06-19Prepare releaseErlang/OTP
2018-06-18Update copyright yearHenrik Nord
2018-06-14Merge pull request #1837 from kostis/hipe-lcm-21-fixBjörn Gustavsson
Fix a crash in HiPE's lazy code motion pass
2018-06-13Merge branch 'rickard/hipe-doc'Rickard Green
* rickard/hipe-doc: Update information about HiPE
2018-06-12No reason to refer to wxSizer in the testKostis Sagonas
2018-06-11Fix a crash ih HoPE's lazy code motion passKostis Sagonas
Some change in the BEAM compiler resulted in the creation of basic blocks that differed from those previously created by the compiler. As a result, the lazy code motion pass of RTL crashed when compiling some of the new code. Crashes were privately reported by @richcarl.
2018-05-30Update information about HiPERickard Green
2018-05-29Revert "Prepare release"Henrik
This reverts commit fd8e49b5bddceaae803670121b603b5eee8c5c08.
2018-05-25Prepare releaseErlang/OTP
2018-05-22hipe: Fix elimination of erlang:get_stacktrace/0Hans Bolinder