-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
V8 v12.3 patch #15
V8 v12.3 patch #15
Conversation
@targos this patch doesn't land cleanly on v12.4. I'm working on it, but until it is ready, let's have this one as a backup. As a Node.js collaborator, can you run this through the CI with the |
I can't |
This patches V8 v12.3 for Windows, by fixing multiple compilation errors caused by V8 being a Clang-oriented project. There are various types of errors fixed by this going from changing `using` directives and renaming to overcoming the differences in which Clang and MSVC see templates and metaprogramming. The changes introduced here are strictly meant as a patch only, so they shouldn't be pushed upstream. Refs: targos#13 Refs: targos#14
f5996da
to
bad4b9f
Compare
Could you post a link to the most recent CI run? |
Yes, here it is https://ci.nodejs.org/job/node-test-commit/69900/. It is a resumed build from https://ci.nodejs.org/job/node-test-commit/69886/. From what I see, there are failures with In addition, as seen in one of those 2 builds, but I also saw it previously when testing only Windows, Other than that I see no issues. I had some problems compiling on non-Windows platforms with my fixes, but I resolved that before running those 2 builds. |
The change was in the |
Ok, then let's merge this, thank you! |
CountLeadingSignBits(k2, rep_w) > k1) { | ||
if (matcher.Get(left).saturated_use_count.IsZero()) { | ||
return __ Comparison( | ||
x, __ WordConstant(base::bits::Unsigned(k2) << k1, rep_w), kind, | ||
rep_w); | ||
} else if constexpr (reducer_list_contains< | ||
ReducerList, ValueNumberingReducer>::value) { | ||
// If the shift has uses, we only apply the transformation if the | ||
// result would be GVNed away. | ||
OpIndex rhs = | ||
__ WordConstant(base::bits::Unsigned(k2) << k1, rep_w); | ||
static_assert(ComparisonOp::input_count == 2); | ||
static_assert(sizeof(ComparisonOp) == 8); | ||
base::SmallVector<OperationStorageSlot, 32> storage; | ||
ComparisonOp* cmp = | ||
CreateOperation<ComparisonOp>(storage, x, rhs, kind, rep_w); | ||
if (__ WillGVNOp(*cmp)) { | ||
return __ Comparison(x, rhs, kind, rep_w); | ||
} | ||
} | ||
CountLeadingSignBits(k2, rep_w) > k1 && | ||
matcher.Get(left).saturated_use_count.IsZero()) { | ||
return __ Comparison( | ||
x, __ WordConstant(base::bits::Unsigned(k2) << k1, rep_w), kind, | ||
rep_w); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change seems non-trivial. What's the effect of removing the else if
branch?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That is a revert of this commit. It was also a part of v12.2 fix before.
This patches V8 v12.3 for Windows, by fixing multiple compilation errors caused by V8 being a Clang-oriented project. There are various types of errors fixed by this going from changing `using` directives and renaming to overcoming the differences in which Clang and MSVC see templates and metaprogramming. The changes introduced here are strictly meant as a patch only, so they shouldn't be pushed upstream. Refs: #13 Refs: #14 Refs: #15
This patches V8 v12.3 for Windows, by fixing multiple compilation errors caused by V8 being a Clang-oriented project. There are various types of errors fixed by this going from changing `using` directives and renaming to overcoming the differences in which Clang and MSVC see templates and metaprogramming. The changes introduced here are strictly meant as a patch only, so they shouldn't be pushed upstream. Refs: #13 Refs: #14 Refs: #15
This patches V8 v12.3 for Windows, by fixing multiple compilation errors caused by V8 being a Clang-oriented project. There are various types of errors fixed by this going from changing `using` directives and renaming to overcoming the differences in which Clang and MSVC see templates and metaprogramming. The changes introduced here are strictly meant as a patch only, so they shouldn't be pushed upstream. Refs: targos#13 Refs: targos#14 Refs: targos#15 PR-URL: #52293 Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Richard Lau <[email protected]>
This patches V8 v12.3 for Windows, by fixing multiple compilation errors caused by V8 being a Clang-oriented project. There are various types of errors fixed by this going from changing `using` directives and renaming to overcoming the differences in which Clang and MSVC see templates and metaprogramming. The changes introduced here are strictly meant as a patch only, so they shouldn't be pushed upstream. Refs: targos#13 Refs: targos#14 Refs: targos#15 PR-URL: #52293 Reviewed-By: Moshe Atlow <[email protected]> Reviewed-By: Rafael Gonzaga <[email protected]> Reviewed-By: Richard Lau <[email protected]>
This patches V8 v12.4 for Windows, by fixing multiple compilation errors caused by V8 being a Clang-oriented project. There are various types of errors fixed by this going from changing `using` directives and renaming to overcoming the differences in which Clang and MSVC see templates and metaprogramming. The changes introduced here are strictly meant as a patch only, so they shouldn't be pushed upstream. Refs: targos#13 Refs: targos#14 Refs: targos#15
This patches V8 v12.4 for Windows, by fixing multiple compilation errors caused by V8 being a Clang-oriented project. There are various types of errors fixed by this going from changing `using` directives and renaming to overcoming the differences in which Clang and MSVC see templates and metaprogramming. The changes introduced here are strictly meant as a patch only, so they shouldn't be pushed upstream. Refs: targos#13 Refs: targos#14 Refs: targos#15
This patches V8 v12.3 for Windows, by fixing multiple compilation errors caused by V8 being a Clang-oriented project. There are various types of errors fixed by this going from changing
using
directives and renaming to overcoming the differences in which Clang and MSVC see templates and metaprogramming.The changes introduced here are strictly meant as a patch only, so they shouldn't be pushed upstream.
Refs: #13
Refs: #14