[PATCH] D20363: [X86] Extract HiPE prologue constants into metadata

Magnus Lång via llvm-commits llvm-commits at lists.llvm.org
Wed May 18 06:16:32 PDT 2016


margnus1 created this revision.
margnus1 added reviewers: bkramer, nadav.
margnus1 added a subscriber: llvm-commits.

`X86FrameLowering::adjustForHiPEPrologue()` contains a hard-coded offset
into an Erlang Runtime System-internal data structure (the PCB). As the
layout of this data structure is prone to change, this poses problems
for maintaining compatibility.

To address this problem, we will have the compiler spit out this
information as module-level named metadata. For example (where
`P_NSP_LIMIT` is the offending offset):

```
!hipe.literals = !{ !2, !3, !4 }
!2 = !{ !"P_NSP_LIMIT", i32 152 }
!3 = !{ !"X86_LEAF_WORDS", i32 24 }
!4 = !{ !"AMD64_LEAF_WORDS", i32 24 }
```

http://reviews.llvm.org/D20363

Files:
  lib/Target/X86/X86FrameLowering.cpp
  test/CodeGen/X86/hipe-cc.ll
  test/CodeGen/X86/hipe-cc64.ll
  test/CodeGen/X86/hipe-prologue.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20363.57602.patch
Type: text/x-patch
Size: 4816 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160518/57fe4a1a/attachment.bin>


More information about the llvm-commits mailing list