<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style class="darkreader darkreader--fallback" media="screen"></style><style class="darkreader darkreader--text" media="screen"></style><style class="darkreader darkreader--invert" media="screen"></style><style class="darkreader darkreader--inline" media="screen">[data-darkreader-inline-bgcolor] {
  background-color: var(--darkreader-inline-bgcolor) !important;
}
[data-darkreader-inline-bgimage] {
  background-image: var(--darkreader-inline-bgimage) !important;
}
[data-darkreader-inline-border] {
  border-color: var(--darkreader-inline-border) !important;
}
[data-darkreader-inline-border-bottom] {
  border-bottom-color: var(--darkreader-inline-border-bottom) !important;
}
[data-darkreader-inline-border-left] {
  border-left-color: var(--darkreader-inline-border-left) !important;
}
[data-darkreader-inline-border-right] {
  border-right-color: var(--darkreader-inline-border-right) !important;
}
[data-darkreader-inline-border-top] {
  border-top-color: var(--darkreader-inline-border-top) !important;
}
[data-darkreader-inline-boxshadow] {
  box-shadow: var(--darkreader-inline-boxshadow) !important;
}
[data-darkreader-inline-color] {
  color: var(--darkreader-inline-color) !important;
}
[data-darkreader-inline-fill] {
  fill: var(--darkreader-inline-fill) !important;
}
[data-darkreader-inline-stroke] {
  stroke: var(--darkreader-inline-stroke) !important;
}
[data-darkreader-inline-outline] {
  outline-color: var(--darkreader-inline-outline) !important;
}</style><style class="darkreader darkreader--user-agent" media="screen">input, textarea, select, button {
    background-color: #ffffd8;
}
html, body, input, textarea, select, button {
    border-color: #5c5240;
    color: #000000;
}
a {
    color: #584e3d;
}
table {
    border-color: #9d8c6d;
}
::placeholder {
    color: #d1ba91;
}
::selection {
    background-color: #665b47;
    color: #ffffd8;
}
::-moz-selection {
    background-color: #665b47;
    color: #ffffd8;
}
input:-webkit-autofill,
textarea:-webkit-autofill,
select:-webkit-autofill {
    background-color: #fff3bd !important;
    color: #000000 !important;
}
::-webkit-scrollbar {
    background-color: #ffffcd;
    color: #756851;
}
::-webkit-scrollbar-thumb {
    background-color: #eed4a5;
}
::-webkit-scrollbar-thumb:hover {
    background-color: #cdb78e;
}
::-webkit-scrollbar-thumb:active {
    background-color: #756851;
}
::-webkit-scrollbar-corner {
    background-color: #ffffd8;
}
* {
    scrollbar-color: #eed4a5 #ffffcd;
}</style><style type="text/css" id="owaParaStyle">P {margin-top:0;margin-bottom:0;}</style><style class="darkreader darkreader--sync" media="screen"></style><style class="darkreader darkreader--override" media="screen">.jfk-bubble {
    background-color: #ffffef !important;
}
.vimvixen-hint {
    background-color: #ffffc7 !important;
    border-color: #c6b089 !important;
    color: #302b21 !important;
}</style><style class="darkreader darkreader--sync" media="screen"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">
<div>Hi,</div>
<div><br>
</div>
<div>I am looking into potentially porting CodeGen and some of the passes to using the new pass manager. Two questions:</div>
<div><br>
</div>
<div>1. Has anybody made an attempt in this direction already? Maybe I am missing a branch out there that has started on this already. From what I can tell, there is no work in-tree in CodeGen that is aware of the new pass manager besides some assembly utilities
 in BackendUtils.cpp. My initial thoughts in this direction were that there would need to be some new pass manager machinery, for example, things like FunctionToMachineFunctionPassAdaptor that handles what MachineFunctionPass::runOnFunction used to do, along
 with the associated AnalysisManager plumbing to understand units of MIR.<br>
</div>
<div><br>
</div>
<div>2. Are there any compile time improvements expected from porting CodeGen passes in the first place? As far as I can tell, the llc pass pipeline seems to be fairly well fixed in terms of phase ordering, and all the analyses are thrown out from opt anyway.</div>
<div><br>
</div>
<div>Thanks,<br>
</div>
<div>Charles<br>
</div>
</div>
</body>
</html>