Skip to content

Fix build errors caused by CompilerTypeSystemContext constructor#1

Merged
trylek merged 1 commit intotrylek:bringupfrom
acmyu:bringup
Jul 19, 2018
Merged

Fix build errors caused by CompilerTypeSystemContext constructor#1
trylek merged 1 commit intotrylek:bringupfrom
acmyu:bringup

Conversation

@acmyu
Copy link

@acmyu acmyu commented Jul 18, 2018

The commit 9accf9f removed an argument from the CompilerTypeSystemContext constructor and caused errors when building corert

@trylek
Copy link
Owner

trylek commented Jul 19, 2018

Awesome, thanks so much Amy for fixing this! In fact, as both you and Simon managed to merge your changes, I'm planning to rebase the entire private branch against it to reduce excessive churn before I go on vacation.

@trylek trylek merged commit 3b03911 into trylek:bringup Jul 19, 2018
trylek added a commit that referenced this pull request Jul 19, 2018
1) Refactor ComputeLookup to pass around references to the
CORINFO_RESOLVED_TOKEN instead of its tokenContext. This will be
needed in the next change to implement R2R variants of the methods.

2) Add new CanInline method to the Compilation class to be used
by CorInfoImpl to query inline-ability.

Thanks

Tomas
trylek added a commit that referenced this pull request Jul 20, 2018
* CorInfoImpl refactoring part #1

1) Refactor ComputeLookup to pass around references to the
CORINFO_RESOLVED_TOKEN instead of its tokenContext. This will be
needed in the next change to implement R2R variants of the methods.

2) Add new CanInline method to the Compilation class to be used
by CorInfoImpl to query inline-ability.

Thanks

Tomas

* Remove superfluous "using Internal.JitInterface" from CorInfoImpl
trylek pushed a commit that referenced this pull request Sep 10, 2018
The ProjectN compiler never finishes compiling an app from an external use. The issue turns out to be due to the debug recording generation for a huge generic expansion. There are actually two problems:

1. The generic complexity computation is improper for the huge generic expansion in the failing case. The complexity computed was 0 and the compiler didn’t know it’s huge.

2. We are missing the check against the generic complexity in some places where UDT debug records are prepared.

Fixing #1 at this point is tricky since it may cause wide asm diffs where normal calls become USG calls.

Fixing #2 means the UDT types in the debug$T section for huge generic instantiations will fall back to USG or canonical records, so will the debug$S records for associated static fields. The debug$T change should only affect native debugging. The debug$S change can affect managed debugging but only for huge generic instantiations.

We've decided #2 is probably the less risky way to unblock the user in the next release and it's fixed by this change for both ProjectN and ProjectX.

[tfs-changeset: 1711506]
trylek pushed a commit that referenced this pull request Sep 10, 2018
* Fix ServiceController name population perf

* Split tests

* Remove dead field

* Remove new use of DangerousGetHandle

* SafeHandle all the things!

* VSB #1

* VSB #2

* Fix GLE

* Initialize machineName in ctor

* Test for empty name ex

* Null names

* Inadvertent edit

* Unix build

* Move interop into class

* Reverse SafeHandle for HAllocGlobal

* Fix tests

* Disable test for NETFX

* CR feedback

* Pattern matching on VSB

* Direct call

* typo

Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
trylek added a commit that referenced this pull request Oct 1, 2018
* CorInfoImpl refactoring part #1

1) Refactor ComputeLookup to pass around references to the
CORINFO_RESOLVED_TOKEN instead of its tokenContext. This will be
needed in the next change to implement R2R variants of the methods.

2) Add new CanInline method to the Compilation class to be used
by CorInfoImpl to query inline-ability.

Thanks

Tomas

* Remove superfluous "using Internal.JitInterface" from CorInfoImpl
trylek added a commit that referenced this pull request Oct 15, 2018
* CorInfoImpl refactoring part #1

1) Refactor ComputeLookup to pass around references to the
CORINFO_RESOLVED_TOKEN instead of its tokenContext. This will be
needed in the next change to implement R2R variants of the methods.

2) Add new CanInline method to the Compilation class to be used
by CorInfoImpl to query inline-ability.

Thanks

Tomas

* Remove superfluous "using Internal.JitInterface" from CorInfoImpl
trylek added a commit that referenced this pull request Mar 19, 2019
This change enables parallelization of ILC compilation when building
multiple assemblies. For the CoreCLR framework I'm observing about
3~4 times compilation time speedup (about 33 seconds where
previously I was observing about 120 seconds with SuperIlc and
about 180 seconds with the legacy scripts).

Thanks

Tomas
trylek added a commit that referenced this pull request Mar 21, 2019
This change enables parallelization of ILC compilation when building
multiple assemblies. For the CoreCLR framework I'm observing about
3~4 times compilation time speedup (about 33 seconds where
previously I was observing about 120 seconds with SuperIlc and
about 180 seconds with the legacy scripts).

As I've introduced a subfolder per compiler name (ilc / crossgen),
I could relax the requirement for output directory specification
(because it can default to the input folder) and the check for
input folder being a subfolder of the output folder.

Thanks

Tomas

P.S. I'm merging this in in spite of the lab failures because I'm 100%
sure this change is not exercised by the lab in any manner and
the lab has been known to be somewhat unstable recently.
trylek pushed a commit that referenced this pull request Apr 26, 2019
…mation does not match the args (plus this if required) (#1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants