llvm-project/llvm
Chen Zheng d79275238f [MachineSink] replace MachineLoop with MachineCycle
reapply 62a9b36fcf and fix module build
failue:
1: remove MachineCycleInfoWrapperPass in MachinePassRegistry.def
   MachineCycleInfoWrapperPass is a anylysis pass, should not be there.
2: move the definition for MachineCycleInfoPrinterPass to cpp file.

Otherwise, there are module conflicit for MachineCycleInfoWrapperPass
in MachinePassRegistry.def and MachineCycleAnalysis.h after
62a9b36fcf.

MachineCycle can handle irreducible loop. Natural loop
analysis (MachineLoop) can not return correct loop depth if
the loop is irreducible loop. And MachineSink is sensitive
to the loop depth, see MachineSinking::isProfitableToSinkTo().

This patch tries to use MachineCycle so that we can handle
irreducible loop better.

Reviewed By: sameerds, MatzeB

Differential Revision: https://reviews.llvm.org/D123995
2022-05-26 06:45:23 -04:00
..
benchmarks
bindings Remove loop-unswitch from various bindings. 2022-04-29 10:53:17 +01:00
cmake [llvm][lldb] use FindLibEdit.cmake everywhere 2022-05-12 15:59:41 -07:00
docs Allow pointer types for atomicrmw xchg 2022-05-25 16:20:26 +00:00
examples [ORC][examples] Fix off-by-one error when handling null terminators. 2022-05-20 19:33:49 -07:00
include [MachineSink] replace MachineLoop with MachineCycle 2022-05-26 06:45:23 -04:00
lib [MachineSink] replace MachineLoop with MachineCycle 2022-05-26 06:45:23 -04:00
projects
resources
runtimes Partially revert "[CMake] Passthrough OSX CMake options to builtins and runtimes" 2022-05-18 17:02:02 +00:00
test [MachineSink] replace MachineLoop with MachineCycle 2022-05-26 06:45:23 -04:00
tools [MC] Lower case the first letter of EmitCOFF* EmitWin* EmitCV*. NFC 2022-05-26 00:14:08 -07:00
unittests [MC] Lower case the first letter of EmitCOFF* EmitWin* EmitCV*. NFC 2022-05-26 00:14:08 -07:00
utils [gn build] Port 569d663020 2022-05-26 08:51:13 +00:00
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt Generalize "check-all" umbrella targets, use for check-clang-tools 2022-05-06 12:30:49 +02:00
CODE_OWNERS.TXT
CREDITS.TXT
LICENSE.TXT
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

The LLVM Compiler Infrastructure
================================

This directory and its subdirectories contain source code for LLVM,
a toolkit for the construction of highly optimized compilers,
optimizers, and runtime environments.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.