summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86/bigstructret.ll
Commit message (Collapse)AuthorAgeFilesLines
* [X86] Handle COPYs of physregs better (regalloc hints)Simon Pilgrim2018-09-191-7/+7
| | | | | | | | | | | | | | Enable enableMultipleCopyHints() on X86. Original Patch by @jonpa: While enabling the mischeduler for SystemZ, it was discovered that for some reason a test needed one extra seemingly needless COPY (test/CodeGen/SystemZ/call-03.ll). The handling for that is resulted in this patch, which improves the register coalescing by providing not just one copy hint, but a sorted list of copy hints. On SystemZ, this gives ~12500 less register moves on SPEC, as well as marginally less spilling. Instead of improving just the SystemZ backend, the improvement has been implemented in common-code (calculateSpillWeightAndHint(). This gives a lot of test failures, but since this should be a general improvement I hope that the involved targets will help and review the test updates. Differential Revision: https://reviews.llvm.org/D38128 llvm-svn: 342578
* [CodeGen] Unify MBB reference format in both MIR and debug outputFrancis Visoiu Mistrih2017-12-041-4/+4
| | | | | | | | | | | | | | | | As part of the unification of the debug format and the MIR format, print MBB references as '%bb.5'. The MIR printer prints the IR name of a MBB only for block definitions. * find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" \) -type f -print0 | xargs -0 sed -i '' -E 's/BB#" << ([a-zA-Z0-9_]+)->getNumber\(\)/" << printMBBReference(*\1)/g' * find . \( -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" \) -type f -print0 | xargs -0 sed -i '' -E 's/BB#" << ([a-zA-Z0-9_]+)\.getNumber\(\)/" << printMBBReference(\1)/g' * find . \( -name "*.txt" -o -name "*.s" -o -name "*.mir" -o -name "*.cpp" -o -name "*.h" -o -name "*.ll" \) -type f -print0 | xargs -0 sed -i '' -E 's/BB#([0-9]+)/%bb.\1/g' * grep -nr 'BB#' and fix Differential Revision: https://reviews.llvm.org/D40422 llvm-svn: 319665
* [X86][DAG] Switch X86 Target to post-legalized store mergeNirav Dave2017-08-111-4/+3
| | | | | | | | | | | | | | | | Move store merge to happen after intrinsic lowering to allow lowered stores to be merged. Some regressions due in MergeConsecutiveStores to missing insert_subvector that are addressed in follow up patch. Reviewers: craig.topper, efriedma, RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D34559 llvm-svn: 310710
* [X86] Regenerate big structure return test and check on x86_64 as well.Simon Pilgrim2017-08-011-13/+37
| | | | llvm-svn: 309676
* test/CodeGen/X86/bigstructret.ll: Suppress one test. It is ↵NAKAMURA Takumi2012-05-251-12/+0
| | | | | | msvc-incompatible. (compatible to mingw32 and netbsd, though) llvm-svn: 157474
* test/CodeGen/X86/bigstructret.ll: Relax stack offsets for hosts of ↵NAKAMURA Takumi2012-05-251-2/+2
| | | | | | stack-align=8, eg. win32 and netbsd. llvm-svn: 157471
* Simplify code for calling a function where CanLowerReturn fails, fixing a ↵Eli Friedman2012-05-251-6/+35
| | | | | | small bug in the process. llvm-svn: 157446
* x86 users can now return arbitrary sized structs. Structs too large to fit ↵Kenneth Uildriks2009-11-111-0/+17
in return registers will be returned through a hidden sret parameter introduced during SelectionDAG construction. llvm-svn: 86876
OpenPOWER on IntegriCloud