summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h
diff options
context:
space:
mode:
authorPeter Collingbourne <peter@pcc.me.uk>2014-12-31 00:25:39 +0000
committerPeter Collingbourne <peter@pcc.me.uk>2014-12-31 00:25:39 +0000
commitd34d92fb9c316a9ccd82989cd89b67143cf3fb8d (patch)
treebec6cddb914b62d626e359eb2d79376eb58df754 /llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h
parenta0a53085e1909c18af8e77c4eb02d8448c7314ca (diff)
downloadbcm5719-llvm-d34d92fb9c316a9ccd82989cd89b67143cf3fb8d.tar.gz
bcm5719-llvm-d34d92fb9c316a9ccd82989cd89b67143cf3fb8d.zip
irgen: modify the ABI to use init guards instead of priority
The new ABI is simpler for use cases such as dynamically loaded packages. The calling convention for import functions is similar to what go/ssa would produce if BareInits were cleared. However, simply clearing this flag causes two additional issues: 1) We would need to special case the 'init$guard' variable (see discussion in https://codereview.appspot.com/78780043/). 2) The call to __go_register_gc_roots needs to appear in the right place, i.e. after the guard check. Making this check appear in the right place with non-bare inits seems unreliable at best. So we keep BareInits set and generate the necessary code manually. It is still possible to get the old ABI by specifying a path to a gccgo installation. Differential Revision: http://reviews.llvm.org/D6804 llvm-svn: 225030
Diffstat (limited to 'llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud