[PATCH] D92430: [lld-macho] Add isCodeSection()
Jez Ng via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 1 14:58:34 PST 2020
int3 added inline comments.
================
Comment at: lld/MachO/InputSection.cpp:67
+ uint32_t attr = isec->flags & MachO::SECTION_ATTRIBUTES_USR;
+ if (attr == S_ATTR_PURE_INSTRUCTIONS)
+ return true;
----------------
smeenai wrote:
> smeenai wrote:
> > int3 wrote:
> > > clayborg wrote:
> > > > BTW there is also a S_ATTR_SOME_INSTRUCTIONS attribute we might be able to use and improve.
> > > hmm I don't think ld64 uses S_ATTR_SOME_INSTRUCTIONS to identify code sections. (Though it does ensure that every code section it emits has both S_ATTR_SOME_INSTRUCTIONS and S_ATTR_PURE_INSTRUCTIONS set.)
> > Out of curiosity, how does S_ATTR_PURE_INSTRUCTIONS interact with LC_DATA_IN_CODE? For example, if Clang ends up emitting an ARM constant pool into the text section (so it's not technically pure instructions), is the section still marked as pure instructions?
> To answer my own question, I'm having a hard time getting clang to produce a constant pool for arm64, but at least for armv7, it marks `__TEXT,__text` as pure instructions despite the constant pool: https://godbolt.org/z/MaT9E1
thanks for checking that case :)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D92430/new/
https://reviews.llvm.org/D92430
More information about the llvm-commits
mailing list