Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Flag vector counts#7912

Merged
JosephTremoulet merged 2 commits into
dotnet:masterfrom
JosephTremoulet:FlagVectorCounts
Nov 1, 2016
Merged

Flag vector counts#7912
JosephTremoulet merged 2 commits into
dotnet:masterfrom
JosephTremoulet:FlagVectorCounts

Conversation

@JosephTremoulet
Copy link
Copy Markdown

Mark immediates which came from the Vector.Count intrinsic, and loops that have such as their limit.

This flag is used to indicate that an integer constant in the IR is the
result of replacing the Vector<T>.Count intrinsic.  This can be used to
drive heuristics focusing more aggressive optimizations on SIMD code.
@JosephTremoulet
Copy link
Copy Markdown
Author

@dotnet/jit-contrib PTAL. This is a step on the way to #7843.

@erozenfeld
Copy link
Copy Markdown
Member

LGTM

Comment thread src/jit/optimizer.cpp Outdated
if (limitOp->gtOper == GT_CNS_INT)
{
optLoopTable[loopInd].lpFlags |= LPFLG_CONST_LIMIT;
if (limitOp->gtFlags & GTF_ICON_SIMD_COUNT)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CC: (limitOp->gtFlags & GTF_ICON_SIMD_COUNT) != 0

@sivarv
Copy link
Copy Markdown
Member

sivarv commented Oct 31, 2016

Looks good.

@CarolEidt
Copy link
Copy Markdown

:shipit:

This flag identifies loops whose limit was a Vector<T>.Count expression.
This can be used in heuristics to target more aggressive optimizations at
SIMD code.
@JosephTremoulet JosephTremoulet merged commit 2db6cc8 into dotnet:master Nov 1, 2016
@JosephTremoulet JosephTremoulet deleted the FlagVectorCounts branch November 1, 2016 05:31
@karelz karelz modified the milestone: 2.0.0 Aug 28, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants