summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/windows-struct-abi.c
Commit message (Collapse)AuthorAgeFilesLines
* Expand aggregate arguments more often on 32-bit WindowsReid Kleckner2016-05-021-3/+3
| | | | | | | | | | | | | | | | | | | | Before this change, we would pass all non-HFA record arguments on Windows with byval. Byval often blocks optimizations and results in bad code generation. Windows now uses the existing workaround that other x86_32 platforms use. I also expanded the workaround to handle C++ records with constructors on Windows. On non-Windows platforms, we have to keep generating the same LLVM IR prototypes if we want our bitcode to be ABI compatible. Otherwise we will encounter mismatch issues like PR21573. Essentially fixes PR27522 in Clang instead of LLVM. Reviewers: hans Differential Revision: http://reviews.llvm.org/D19756 llvm-svn: 268261
* CodeGen: make i686-windows-itanium more similar to msvcSaleem Abdulrasool2014-11-241-2/+17
| | | | | | | The itanium environment follows the system calling convention for structures. Pass small aggregates via registers. llvm-svn: 222680
* CodeGen: tweak struct ABI handlingSaleem Abdulrasool2014-11-231-0/+27
Cygwin and MinGW fail to conform to the underlying system's structure passing ABI. Make the check more precise to ensure that we correctly generate code for the itanium environment. llvm-svn: 222626
OpenPOWER on IntegriCloud