aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/llvm/hipe_llvm.erl
AgeCommit message (Collapse)Author
2018-01-22Merge branch 'maint'Björn Gustavsson
* maint: ErLLVM: Preserve precise BEAM tailcall semantics observer: Fix change accum Remove double calls observer: Don't crash for late messages observer: Optimize tv tab for many tables
2018-01-19ErLLVM: Preserve precise BEAM tailcall semanticsMagnus Lång
The BEAM compiler chooses not to perform tailcall optimisations for some calls in tail position, for example to some built-in functions. However, when the ErLLVM HiPE backend is used, LLVM may choose to perform tailcall optimisation on these calls, breaking the expected semantics. To preserve the precise semantics exhibited by BEAM, the 'notail' marker, present in LLVM since version 3.8, is added to call instructions that BEAM has not turned into tail calls, which inhibits LLVM from performing tail-call optimisation in turn.
2017-07-06hipe: Do not use deprecated functions in string(3)Hans Bolinder
Should probably be left for the HiPE team to fix
2017-02-19ErLLVM: Drop code printing assembly for LLVM < 3.9Magnus Lång
2016-05-26hipe_llvm: Export hipe literals as LLVM metadataMagnus Lång
LLVM currently hard-codes these. Since it is desirable to be able to change things like PCB layout without requiring a change to LLVM, we export these as LLVM metadata, which can easily be used from LLVM to make it independent of them.
2016-05-18hipe_llvm: Move elf_format.hrl types to moduleMagnus Lång
Named types, except those for the records in the header files, have been moved from elf*_format.hrl to elf_format.erl. Also: * Use lists instead of element/2-indexed tuples for ELF section and symbol tables. * Enable +warn_export_vars for hipe/llvm/ subdirectory and fix warning. * Extract duplicated code in hipe_llvm module into help function pp_dereference_type/3.
2016-05-04hipe_llvm: Syntax compatibility with 3.7-3.8Magnus Lång
2014-03-07Implement the LLVM backendYiannis Tsiouris