Skip to content

Flags should be different from an expand parameter and a divided parameter #2015

@llvmbot

Description

@llvmbot
Bugzilla Link 1643
Resolution FIXED
Resolved on Mar 06, 2010 14:00
Version trunk
OS All
Reporter LLVM Bugzilla Contributor
CC @lattner,@sunfishcode

Extended Description

Currently, when doing a call or for formal arguments, SelectionDAG gives a OrigAlignmentFlag to:

  • arguments whose type is expanded (eg i8 -> i32)
  • broken up arguments (eg i64 -> i32 + i32)

However the two cases need to have a different flag in the PPC32 ELF ABI. In this target, arguments are aligned when they are double word, for example:

declare void @​foo(i32 %a, i64 %c)

%a goes into register 1
%c goes into registers 3 and 4

The PPC code generator sees three arguments for this function of type i32 and the last argument has the flag OrigAlignmentFlag. Currently, it can not know if the last argument is an i64 divided into two i32 or if the last argument is i1, i8 or i16 which are expanded.

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