History log of /llvm-project/llvm/lib/CodeGen/MachineOutliner.cpp (Results 51 – 75 of 190)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-11.0.0-rc2, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3
# ca4c1ad8 01-Jul-2020 David Green <david.green@arm.com>

[Outliner] Set nounwind for outlined functions

This prevents the outlined functions from pulling in a lot of unnecessary code
in our downstream libraries/linker. Which stops outlining making codesiz

[Outliner] Set nounwind for outlined functions

This prevents the outlined functions from pulling in a lot of unnecessary code
in our downstream libraries/linker. Which stops outlining making codesize
worse in c++ code with no-exceptions.

Differential Revision: https://reviews.llvm.org/D57254

show more ...


Revision tags: llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1
# bb677cac 08-Apr-2020 Andrew Litteken <andrew_litteken@apple.com>

[SuffixTree][MachOpt] Factoring out Suffix Tree and adding Unit Tests

This moves the SuffixTree test used in the Machine Outliner and moves it into Support for use in other outliners elsewhere in th

[SuffixTree][MachOpt] Factoring out Suffix Tree and adding Unit Tests

This moves the SuffixTree test used in the Machine Outliner and moves it into Support for use in other outliners elsewhere in the compilation pipeline.

Differential Revision: https://reviews.llvm.org/D80586

show more ...


# 0c4aab27 06-May-2020 Puyan Lotfi <puyan@puyan.org>

[NFC] Outliner label name clean up.

Just simplifying how the label name is generated while using
std::to_string instead of Twine.

Differential Revision: https://reviews.llvm.org/D79464


# ffd5e121 29-Apr-2020 Puyan Lotfi <puyan@puyan.org>

[NFCi] Iterative Outliner + clang-format refactoring.

Prior to D69446 I had done some NFC cleanup to make landing an iterative
outliner a cleaner more straight-forward patch. Since then, it seems th

[NFCi] Iterative Outliner + clang-format refactoring.

Prior to D69446 I had done some NFC cleanup to make landing an iterative
outliner a cleaner more straight-forward patch. Since then, it seems that has
landed but I noticed some ways it could be cleaned up. Specifically:

1) doOutline was meant to be the re-runable function, but instead
runOnceOnModule was created that just calls doOutline.
2) In D69446 we discussed that the flag allowing the re-run of the
outliner should be a flag to tell how many additional times to run
the outliner again, not the total number of times. I don't think it
makes sense to introduce a flag, but print an error if the flag is
set to 0.

This is an NFCi, the i being that I get rid of the way that the
machine-outline-runs flag could be used to tell the outliner to not run
at all, and because I renamed the flag to '-machine-outliner-reruns'.

Differential Revision: https://reviews.llvm.org/D79070

show more ...


# 1a78b0bd 22-Apr-2020 Eli Friedman <efriedma@quicinc.com>

[MachineOutliner] Teach outliner to set live-ins

Preserving liveness can be useful even late in the pipeline, if we're
doing substantial optimization work afterwards. (See, for example,
D76065.) Tea

[MachineOutliner] Teach outliner to set live-ins

Preserving liveness can be useful even late in the pipeline, if we're
doing substantial optimization work afterwards. (See, for example,
D76065.) Teach MachineOutliner how to correctly set live-ins on the
basic block in outlined functions.

Differential Revision: https://reviews.llvm.org/D78605

show more ...


# 8d5024f7 10-Apr-2020 Andrew Litteken <andrew_litteken@apple.com>

fix to outline cfi instruction when can be grouped in a tail call

[MachineOutliner] fix test for excluding CFI and add test to include CFI in outlining

New test to check that we only outline CFI in

fix to outline cfi instruction when can be grouped in a tail call

[MachineOutliner] fix test for excluding CFI and add test to include CFI in outlining

New test to check that we only outline CFI instruction if all CFI
Instructions in the function would be captured by the outlining

adding x86 tests analagous to AARCH64 cfi tests

Revision: https://reviews.llvm.org/D77852

show more ...


Revision tags: llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5
# 0d896278 17-Mar-2020 Jin Lin <jinl@uber.com>

Support repeated machine outlining

Summary: The following change is to allow the machine outlining can be applied for Nth times, where N is specified by the compiler option. By default the value of

Support repeated machine outlining

Summary: The following change is to allow the machine outlining can be applied for Nth times, where N is specified by the compiler option. By default the value of N is 1. The motivation is that the repeated machine outlining can further reduce code size. Please refer to the presentation "Improving Swift Binary Size via Link Time Optimization" in LLVM Developers' Meeting in 2019.

Reviewers: aschwaighofer, tellenbach, paquette

Reviewed By: paquette

Subscribers: tellenbach, hiraditya, llvm-commits, jinlin

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71027

show more ...


# 7b166d51 18-Mar-2020 Jin Lin <jinl@uber.com>

Revert "Support repeated machine outlining"

This reverts commit ab2dcff309f99614983db7ef6ee4bf43d24dcc30.


# ab2dcff3 17-Mar-2020 Jin Lin <jinl@uber.com>

Support repeated machine outlining

Summary: The following change is to allow the machine outlining can be applied for Nth times, where N is specified by the compiler option. By default the value of

Support repeated machine outlining

Summary: The following change is to allow the machine outlining can be applied for Nth times, where N is specified by the compiler option. By default the value of N is 1. The motivation is that the repeated machine outlining can further reduce code size. Please refer to the presentation "Improving Swift Binary Size via Link Time Optimization" in LLVM Developers' Meeting in 2019.

Reviewers: aschwaighofer, tellenbach, paquette

Reviewed By: paquette

Subscribers: tellenbach, hiraditya, llvm-commits, jinlin

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71027

show more ...


# b9f1b8be 17-Mar-2020 Jin Lin <jinl@uber.com>

Revert "Support repeated machine outlining"

This reverts commit 1f93b162fc6bed2e7763ac6c35cf51741014400e.


# 1f93b162 17-Mar-2020 Jin Lin <jinl@uber.com>

Support repeated machine outlining

Summary: The following change is to allow the machine outlining can be applied for Nth times, where N is specified by the compiler option. By default the value of

Support repeated machine outlining

Summary: The following change is to allow the machine outlining can be applied for Nth times, where N is specified by the compiler option. By default the value of N is 1. The motivation is that the repeated machine outlining can further reduce code size. Please refer to the presentation "Improving Swift Binary Size via Link Time Optimization" in LLVM Developers' Meeting in 2019.

Reviewers: aschwaighofer, tellenbach, paquette

Reviewed By: paquette

Subscribers: tellenbach, hiraditya, llvm-commits, jinlin

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71027

show more ...


Revision tags: llvmorg-10.0.0-rc4
# fc6fda90 05-Mar-2020 Jin Lin <jinl@uber.com>

Fix incorrect logic in maintaining the side-effect of compiler generated outliner functions

Summary: Fix incorrect logic in maintaining the side-effect of compiler generated outliner functions by ad

Fix incorrect logic in maintaining the side-effect of compiler generated outliner functions

Summary: Fix incorrect logic in maintaining the side-effect of compiler generated outliner functions by adding the up-exposed uses.

Reviewers: paquette, tellenbach

Reviewed By: paquette

Subscribers: aemerson, lebedev.ri, hiraditya, llvm-commits, jinlin

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D71217

show more ...


Revision tags: llvmorg-10.0.0-rc3
# 016d91cc 27-Feb-2020 Djordje Todorovic <djordje.todorovic@rt-rk.com>

[CallSiteInfo] Handle bundles when updating call site info

This will address the issue: P8198 and P8199 (from D73534).

The methods was not handle bundles properly.

Differential Revision: https://r

[CallSiteInfo] Handle bundles when updating call site info

This will address the issue: P8198 and P8199 (from D73534).

The methods was not handle bundles properly.

Differential Revision: https://reviews.llvm.org/D74904

show more ...


Revision tags: llvmorg-10.0.0-rc2
# 68908993 10-Feb-2020 Djordje Todorovic <djordje.todorovic@rt-rk.com>

[CSInfo] Use isCandidateForCallSiteEntry() when updating the CSInfo

Use the isCandidateForCallSiteEntry().
This should mostly be an NFC, but there are some parts ensuring
the moveCallSiteInfo() and

[CSInfo] Use isCandidateForCallSiteEntry() when updating the CSInfo

Use the isCandidateForCallSiteEntry().
This should mostly be an NFC, but there are some parts ensuring
the moveCallSiteInfo() and copyCallSiteInfo() operate with call site
entry candidates (both Src and Dest should be the call site entry
candidates).

Differential Revision: https://reviews.llvm.org/D74122

show more ...


Revision tags: llvmorg-10.0.0-rc1
# adcd0268 28-Jan-2020 Benjamin Kramer <benny.kra@googlemail.com>

Make llvm::StringRef to std::string conversions explicit.

This is how it should've been and brings it more in line with
std::string_view. There should be no functional change here.

This is mostly m

Make llvm::StringRef to std::string conversions explicit.

This is how it should've been and brings it more in line with
std::string_view. There should be no functional change here.

This is mostly mechanical from a custom clang-tidy check, with a lot of
manual fixups. It uncovers a lot of minor inefficiencies.

This doesn't actually modify StringRef yet, I'll do that in a follow-up.

show more ...


Revision tags: llvmorg-11-init
# b2cd2734 10-Jan-2020 Simon Pilgrim <llvm-dev@redking.me.uk>

Fix Wdocumentation warning. NFCI.


# acd25808 07-Jan-2020 Jessica Paquette <jpaquette@apple.com>

[MachineOutliner][AArch64] Save + restore LR in noreturn functions

Conservatively always save + restore LR in noreturn functions.

These functions do not end in a RET, and so they aren't guaranteed

[MachineOutliner][AArch64] Save + restore LR in noreturn functions

Conservatively always save + restore LR in noreturn functions.

These functions do not end in a RET, and so they aren't guaranteed to have an
instruction which uses LR in any way. So, as a result, you can end up in
unfortunate situations where you can't backtrace out of these functions in a
debugger.

Remove the old noreturn test, and add a new one which is more descriptive.

Remove the restriction that we can't outline from noreturn functions as well
since we now do the right thing.

show more ...


# d5750770 20-Dec-2019 Jessica Paquette <jpaquette@apple.com>

[NFC][MachineOutliner] Rewrite setSuffixIndices to be iterative

Having this function be recursive could use up way too much stack space.

Rewrite it as an iterative traversal in the tree instead to

[NFC][MachineOutliner] Rewrite setSuffixIndices to be iterative

Having this function be recursive could use up way too much stack space.

Rewrite it as an iterative traversal in the tree instead to prevent this.

Fixes PR44344.

show more ...


Revision tags: llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1
# 05da2fe5 13-Nov-2019 Reid Kleckner <rnk@google.com>

Sink all InitializePasses.h includes

This file lists every pass in LLVM, and is included by Pass.h, which is
very popular. Every time we add, remove, or rename a pass in LLVM, it
caused lots of reco

Sink all InitializePasses.h includes

This file lists every pass in LLVM, and is included by Pass.h, which is
very popular. Every time we add, remove, or rename a pass in LLVM, it
caused lots of recompilation.

I found this fact by looking at this table, which is sorted by the
number of times a file was changed over the last 100,000 git commits
multiplied by the number of object files that depend on it in the
current checkout:
recompiles touches affected_files header
342380 95 3604 llvm/include/llvm/ADT/STLExtras.h
314730 234 1345 llvm/include/llvm/InitializePasses.h
307036 118 2602 llvm/include/llvm/ADT/APInt.h
213049 59 3611 llvm/include/llvm/Support/MathExtras.h
170422 47 3626 llvm/include/llvm/Support/Compiler.h
162225 45 3605 llvm/include/llvm/ADT/Optional.h
158319 63 2513 llvm/include/llvm/ADT/Triple.h
140322 39 3598 llvm/include/llvm/ADT/StringRef.h
137647 59 2333 llvm/include/llvm/Support/Error.h
131619 73 1803 llvm/include/llvm/Support/FileSystem.h

Before this change, touching InitializePasses.h would cause 1345 files
to recompile. After this change, touching it only causes 550 compiles in
an incremental rebuild.

Reviewers: bkramer, asbirlea, bollu, jdoerfert

Differential Revision: https://reviews.llvm.org/D70211

show more ...


# 117e6dd6 05-Nov-2019 Simon Pilgrim <llvm-dev@redking.me.uk>

Remove redundant assignment. NFCI.

Fixes cppcheck warning.


# 76166a1a 05-Nov-2019 Simon Pilgrim <llvm-dev@redking.me.uk>

Use iterator prefix increment. NFCI.


# 7ad25836 05-Nov-2019 Simon Pilgrim <llvm-dev@redking.me.uk>

[MachineOutliner] Reduce scope of variable and stop duplicate getMF() calls. NFCI.


# c7f127d9 05-Nov-2019 Simon Pilgrim <llvm-dev@redking.me.uk>

[MachineOutliner] Fix uninitialized variable warnings. NFCI.


# fbe7f5e9 30-Oct-2019 David Tellenbach <david.tellenbach@arm.com>

[NFC][MachineOutliner] Fix typo in comment


# 6b7615ae 28-Oct-2019 Puyan Lotfi <puyan@puyan.org>

[MachineOutliner][NFC] clang-formating the MachineOutliner.


12345678