Skip to content

ARM Thumb 2: Alignment getting lost between .ll and .s #10500

@llvmbot

Description

@llvmbot
Bugzilla Link 10128
Resolution FIXED
Resolved on Sep 01, 2011 18:07
Version trunk
OS Windows NT
Attachments llvm code you can compile to see the problem, Assembly output from the same
Reporter LLVM Bugzilla Contributor
CC @asl,@d0k,@efriedma-quic,@rjmccall

Extended Description

On this .ll file, the syntax I am using is:
llc -mcpu=cortex-m3 -filetype=asm Bad.ll
Alternatively -filetype=obj.

In any case, __node_3__locals is not being aligned.
When emitted as an ELF, it places at 0x1d in .bss.
It's a 4-byte value, so this causes a crash at runtime.
The .s file doesn't have any align directives that I
can see for the value, while the .ll file does. ELF
output has this same problem, so the bug must be before
it gets that far.

This does not occur if these variables are not internalized.
Only when declared static or when internalized for global
optimization does this occur. If the symbols are exported,
the problem isn't there. Perhaps it's some optimization that
only occurs when they are local?

This bug is causing me serious problems, so please take a
look at it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions