summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)AuthorFilesLines
2016-07-14Clean up localloc implementation; improve AMD64 codegen for initialized ↵Bruce Forstall3-50/+65
locallocs
2016-07-14Make StubHelpers::ProcessByrefValidationList NOTHROW (#6258)Jan Vorlicek1-2/+10
This change fixes StubHelpers::ProcessByrefValidationList so that it doesn't throw. While there was a EX_TRY / EX_CATCH, the catch handler calls FormatValidationMessage to format the message before aborting the process and that function can throw. The fix is to wrap the inside of the EX_CATCH in one more EX_TRY / EX_CATCH and abort the process without message if there is an exception in the FormatValidationMessage.
2016-07-13Merge pull request #6205 from stephentoub/environmentaugmentsStephen Toub3-0/+40
Add EnvironmentAugments to coreclr
2016-07-13Merge pull request #6182 from wateret/fix-6051Carol Eidt3-1/+59
[ARM-softfp/Linux] Get precise type for struct
2016-07-13Merge pull request #6254 from pgavlin/RemoveRenameUpdatedVarsPat Gavlin2-157/+0
Remove RenameUpdatedVars.
2016-07-13Conditionally compile EnvironmentAugments.cs for coreclrStephen Toub1-1/+1
2016-07-13Add EnvironmentAugments to coreclrStephen Toub3-0/+40
2016-07-13Implement localloc for RyuJIT/x86Bruce Forstall2-20/+86
Fixes #4182 Change RyuJIT to generate localloc code for x86 the same way legacy JIT does. E.g., use a push/dec loop for initialized memory. And avoid using "sub esp" to keep the emitter from tracking stack pointer adjustments.
2016-07-13Merge pull request #6224 from BruceForstall/Fix4177Bruce Forstall2-5/+12
Fix #4177: RyuJIT/x86 NYI related to lvaArgType()
2016-07-13Fix #4177: RyuJIT/x86 NYI related to lvaArgType()Bruce Forstall2-5/+12
For x86, this function can simply return the variable type. There is no need to map struct types. The function actually will never be called on x86 for struct types because it is only called for register arguments. This NYI was only hit in the case of JMP calls. I fixed two cases in the JMP implementation where FEATURE_VARARGS code assumed AMD64, due to the Windows AMD64 ABI convention to pass float varargs values in both integer and floating point registers. I put that under `#ifdef _TARGET_AMD64_`. This removes 426 NYI.
2016-07-13Merge pull request #6253 from stephentoub/stop_stripping_serializableStephen Toub1-1/+1
Stop BclRewriter from trimming serializable metadata
2016-07-13Merge pull request #6247 from ellismg/add-back-exception-membersMatt Ellis2-2/+10
Add back some surface area to thinned corelib
2016-07-13Stop BclRewriter from trimming serializable metadataStephen Toub1-1/+1
2016-07-13Remove RenameUpdatedVars.Pat Gavlin2-157/+0
The variable renaming performed by rationalize was originally intended (according to its comments) to allow assignments that were embedded in subtrees to be hoisted out into a preceding statement. It appears that this logic has been removed, so the rename pass is no longer needed.
2016-07-13[ARM-softfp/Linux] Get precise type for pointer-size structHanjoung Lee3-1/+59
Compiler::getPrimitiveTypeForStruct may return TYP_FLOAT but is off on softfp. So we need to check that in another way rather than `IsHfa()`. Otherwise struct types with single float32 will make inconsistency in gentree. Which ends up with assert failure "Bad IL: Illegal assignment of float into integer!". Check is done in Compiler::getPrimitiveTypeForStruct, by isSingleFloat32Struct. Fix #6051
2016-07-12Add back some surface area to thinned corelibMatt Ellis1-1/+9
We are working on expsosing some existing exception types from System.Runtime in CoreFX. The implementations will facade over System.Private.CoreLib, but we need to make sure all the members we expect to expose from the contract are present in the implementation assembly. Expose the missing members for ExecutionEngineException, NotFiniteNumberException and ExternalException.
2016-07-12Merge pull request #6244 from AndyAyersMS/FixDataCollectionAndy Ayers3-5/+48
Inliner: Update data collection by targeting a single inline
2016-07-12Merge pull request #6226 from rahku/crossgenRahul Kumar1-2/+0
ARM64: In GetDelegateTarget a portion of the _WIN64 code was under _T…
2016-07-12Suppress Interactive Shell when running PSMatt Ellis1-1/+1
On recent builds of Windows/PowerShell it seems like PS wants to write a prompt after invoking the script, which causes a problem because that puts extra gunk into the generated source file from h2inc, which causes downstream failures.
2016-07-12Merge pull request #6225 from pgavlin/RationalizeCleanupPat Gavlin3-115/+73
Refactor top-level comma rewriting.
2016-07-12Add a comment at the use of RewriteTopLevelComma.Pat Gavlin1-0/+5
2016-07-12Inliner: Update data collection by targeting a single inlineAndy Ayers3-5/+48
The inliner currently will record detailed data about the last successful inline performed (given a build with DEBUG or INLINE_DATA defined). However, for purposes of inline profitability analysis we might be more interested in the data from an earlier inline. This change creates a mechanism where the replay log can flag one inline per method as the target of data collection. The inliner checks for this attribute during replay and captures that inline's data.
2016-07-12Refactor top-level comma rewriting.Pat Gavlin3-115/+68
Top-level commas were being handled in three separate parts of rationalize: TreeTransformRationalization, RewriteSimpleTransforms, and DoPhase. Furthermore, the transform performed by the latter was distinct from the transforms performed by the former two parts, as those parts called out to RewriteTopLevelComma in order to do the necessary rewrite. This change collects the two transforms in RewriteTopLevelComma and centralizes the comma handling in RewriteSimpleTransforms. With the comma handling centralized in RewriteSimpleTransforms, TreeTransformRationalization was not doing much of anything, so it has been removed and RewriteSimpleTransforms renamed to TreeTransformRationalization.
2016-07-12active exception regression fix (#6117)chunseoklee1-0/+6
This patch fixes regression caused by 597e160 commit. Previous PAL_VirtualUnwind does not set CONTEXT_UNWOUND_TO_CALL properly. In this patch, the flag is added for non-signaled exception.
2016-07-12Fix !PrintException (pe) -lines bug where line number/source info is not ↵Mike McLaughlin1-16/+7
being displayed. (#6241) The argument bLineNumbers to FormatGeneratedException was being used a local flag.
2016-07-12Expose missing members of Array to prep for dotnet/corefx#9998. (#6230)Dan Moseley2-3/+23
* Expose missing members of Array to prep for dotnet/corefx#9998. modelgen.exe is helpful. * Remove dead code * Implement Array.LongLength. * Revert "Implement Array.LongLength." This reverts commit fdf7e96172d3b816551b827b6a45fbc692b0551d. * Revert "Remove dead code" This reverts commit 432087c2d6f826db93fa30a07476dc2decb12633. * Expose Array.GetLongLength from VM
2016-07-12ARM64: In GetDelegateTarget a portion of the _WIN64 code was under ↵Rahul Kumar1-2/+0
_TARGET_AMD64_ whereas at other places (like NDirectStubLinker::DoNDirect & InlinedCallFrame::HasFunction ) related code is under _WIN64. Make the code in GetDelegateTarget to be in sync with other functions and remove ifdef _TARGET_ADM64_. Without this change for arm64 InlinedCallFrame::m_datum stores unmanaged target pointer but StackWalker assumes it to be a NDirectMethodDesc and tries to dereference it and crashes.
2016-07-12Merge pull request #6137 from papaslavik/int_softfp_fixBruce Forstall1-2/+6
Fix for #5877: pre-spill just the floating arguments
2016-07-12Merge pull request #5966 from mikedn/x86-neg-longBruce Forstall3-2/+56
Implement GT_NEG decomposition
2016-07-12Merge pull request #6198 from briansull/multireg-refactorBrian Sullivan7-99/+587
Refactor and cleanup work for passing and returning struct types
2016-07-12Fix exceptions in GC wave 2 (#6220)Jan Vorlicek6-174/+95
I've removed blocks with PAL_TRY that were under CATCH_GC. I also had to fix contract problem in GCToEEInterface::GcStartWork that was marked as THROWS due to StubHelpers::ProcessByrefValidationList being marked as THROWS, but the StubHelpers::ProcessByrefValidationList in fact doesn't throw since it has body wrapped in EX_TRY / EX_CATCH. This also fixes a problem that started to appear after my previous exceptions fix change.
2016-07-12Implement GT_NEG decompositionMike Danes3-2/+56
2016-07-11Refactor and cleanup work for passing and returning struct typesBrian Sullivan7-99/+587
Replaces argOrReturnTypeForStruct with two new methods: getArgTypeForStruct - Provides information on how to pass a struct type getReturnTypeForStruct - Provides information on how to return a struct type A struct can be passed or return in the following different ways: 1. A struct type may be passed/returned as a primitive type when its size is small 2. A struct type may be passed/returned by reference to a copy 3. A struct type may be passed/returned by value using multiple registers 4. A struct type may be passed by value using a copy on the stack Incorporated code review feedback with expanded comments.
2016-07-11Merge pull request #6221 from pgavlin/RemoveDeadCodeInRationalizePat Gavlin2-309/+3
Remove dead code in Rationalize.
2016-07-11Remove dead code in Rationalize.Pat Gavlin2-309/+3
Most of the removed code deals with QMARK rewriting. These nodes are now rewritten as part of fgMorph, so the rationalizer does not need to deal with them (other than asserting that they do not exist). Other dead code: - The `Rationalizations` type - A few split-related declarations and helpers
2016-07-11Merge pull request #6204 from AndyAyersMS/ModelPolicyDepthCheckAndy Ayers1-0/+13
Inliner: add depth check to ModelPolicy
2016-07-11Merge pull request #6216 from hqueue/fix/typo_20160710Aditya Mandaleeka1-1/+1
Fix a misleading typo in comment
2016-07-11Merge pull request #6202 from BruceForstall/RefactorDecompBruce Forstall7-833/+1284
Refactor RyuJIT/x86 long decomposition code
2016-07-11Fix a misleading typo in commentHyung-Kyu Choi1-1/+1
Signed-off-by: Hyung-Kyu Choi <hk0110.choi@samsung.com>
2016-07-11Avoid repeated virtual method calls in List.Contains (#6212)James Ko1-16/+13
2016-07-10Refactor RyuJIT/x86 long decomposition codeBruce Forstall7-833/+1284
All decomposition code is now in decompose.cpp, in a Decompose class. Each node type that is decomposed has its own member function to do the decomposition. Various helpers have been added to reduce code duplication. In general, though, the code is as it was before.
2016-07-09Inliner: add depth check to ModelPolicyAndy Ayers1-0/+13
Give the ModelPolicy the standard depth bailout logic. This mainly serves to prevent runaway inlining for recursive methods marked with AggressiveInlining attributes.
2016-07-09Merge pull request #6201 from AndyAyersMS/LowerCallsiteWeightAndy Ayers2-3/+74
Inliner: updates to ModelPolicy
2016-07-08Merge pull request #6190 from dotnet-bot/from-tfsBrian Sullivan1-1/+1
Merge changes from TFS
2016-07-08Inliner: updates to ModelPolicyAndy Ayers2-3/+74
Updates to bring CS and TP impact of the ModelPolicy into more acceptable ranges. For CS, reduce the call site weights to values that are more in keeping with the legacy policy weights. Local test runs show this does not drastically alter CQ and brings CS down below LegacyPolicy levels, on average. Implement an early out rejection based solely on ILSize. The threshold value is set by conservatively determining when ILSize alone indicates the method in question will never be inlined (note the policy itself does not have an explicit ILSize cutoff). See comments for `ModelPolicy::NoteInt` for details. Note if we adjust the model's size and profitability estimates, this threshould will also need updating. CQ (as measured by the CoreCLR perf tests) continues to show about a 2.5% geomean improvement over LegacyPolicy.
2016-07-09Fix exceptions in GC (#6192)Jan Vorlicek8-528/+554
The GC code in general doesn't expect exceptions to be thrown from functions it calls. However, the event creation functions were in fact throwing, so in case of OOM, exception would be thrown from various places of the code. This change creates non-throwing versions of the event creation functions and replaces all usages of the throwing ones in the GC. In addition, I've removed blocks with PAL_TRY that were under NO_CATCH_HANDLERS define and also added Object::SetAppDomainNoThrow, which allowed me to removed EX_TRY from GCHeap::StressHeap where the Object::SetAppDomain was called before.
2016-07-08Merge pull request #6193 from BruceForstall/FixTyposBruce Forstall4-12/+12
Fix some typos in comments
2016-07-08Merge pull request #6195 from rahku/crossgenRahul Kumar1-2/+6
Fix SOS bpmd for windows
2016-07-08Merge pull request #6176 from sivarv/lsraTodoSivarv1-9/+24
Optimize use of a reg-optional lclVar that is marked for both reload and spillAfter
2016-07-08Fix SOS bpmd for windowsRahul Kumar1-2/+6