Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
6c37bbbb
Commit
6c37bbbb
authored
Aug 06, 2020
by
johnkslang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Non-functional: consistently use 'const TSourceLoc&' to pass location.
parent
b60e067b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
30 additions
and
28 deletions
+30
-28
Intermediate.cpp
glslang/MachineIndependent/Intermediate.cpp
+20
-19
localintermediate.h
glslang/MachineIndependent/localintermediate.h
+10
-9
No files found.
glslang/MachineIndependent/Intermediate.cpp
View file @
6c37bbbb
...
...
@@ -113,7 +113,7 @@ TIntermSymbol* TIntermediate::addSymbol(const TType& type, const TSourceLoc& loc
//
// Returns nullptr if the working conversions and promotions could not be found.
//
TIntermTyped
*
TIntermediate
::
addBinaryMath
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
TSourceLoc
loc
)
TIntermTyped
*
TIntermediate
::
addBinaryMath
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
const
TSourceLoc
&
loc
)
{
// No operations work on blocks
if
(
left
->
getType
().
getBasicType
()
==
EbtBlock
||
right
->
getType
().
getBasicType
()
==
EbtBlock
)
...
...
@@ -226,13 +226,12 @@ TIntermTyped* TIntermediate::addBinaryMath(TOperator op, TIntermTyped* left, TIn
//
// Low level: add binary node (no promotions or other argument modifications)
//
TIntermBinary
*
TIntermediate
::
addBinaryNode
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
TSourceLoc
loc
)
const
TIntermBinary
*
TIntermediate
::
addBinaryNode
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
const
TSourceLoc
&
loc
)
const
{
// build the node
TIntermBinary
*
node
=
new
TIntermBinary
(
op
);
if
(
loc
.
line
==
0
)
loc
=
left
->
getLoc
();
node
->
setLoc
(
loc
);
node
->
setLoc
(
loc
.
line
!=
0
?
loc
:
left
->
getLoc
());
node
->
setLeft
(
left
);
node
->
setRight
(
right
);
...
...
@@ -242,7 +241,8 @@ TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TI
//
// like non-type form, but sets node's type.
//
TIntermBinary
*
TIntermediate
::
addBinaryNode
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
TSourceLoc
loc
,
const
TType
&
type
)
const
TIntermBinary
*
TIntermediate
::
addBinaryNode
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
const
TSourceLoc
&
loc
,
const
TType
&
type
)
const
{
TIntermBinary
*
node
=
addBinaryNode
(
op
,
left
,
right
,
loc
);
node
->
setType
(
type
);
...
...
@@ -252,12 +252,10 @@ TIntermBinary* TIntermediate::addBinaryNode(TOperator op, TIntermTyped* left, TI
//
// Low level: add unary node (no promotions or other argument modifications)
//
TIntermUnary
*
TIntermediate
::
addUnaryNode
(
TOperator
op
,
TIntermTyped
*
child
,
TSourceLoc
loc
)
const
TIntermUnary
*
TIntermediate
::
addUnaryNode
(
TOperator
op
,
TIntermTyped
*
child
,
const
TSourceLoc
&
loc
)
const
{
TIntermUnary
*
node
=
new
TIntermUnary
(
op
);
if
(
loc
.
line
==
0
)
loc
=
child
->
getLoc
();
node
->
setLoc
(
loc
);
node
->
setLoc
(
loc
.
line
!=
0
?
loc
:
child
->
getLoc
());
node
->
setOperand
(
child
);
return
node
;
...
...
@@ -266,7 +264,8 @@ TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSo
//
// like non-type form, but sets node's type.
//
TIntermUnary
*
TIntermediate
::
addUnaryNode
(
TOperator
op
,
TIntermTyped
*
child
,
TSourceLoc
loc
,
const
TType
&
type
)
const
TIntermUnary
*
TIntermediate
::
addUnaryNode
(
TOperator
op
,
TIntermTyped
*
child
,
const
TSourceLoc
&
loc
,
const
TType
&
type
)
const
{
TIntermUnary
*
node
=
addUnaryNode
(
op
,
child
,
loc
);
node
->
setType
(
type
);
...
...
@@ -281,7 +280,8 @@ TIntermUnary* TIntermediate::addUnaryNode(TOperator op, TIntermTyped* child, TSo
// Returns nullptr if the 'right' type could not be converted to match the 'left' type,
// or the resulting operation cannot be properly promoted.
//
TIntermTyped
*
TIntermediate
::
addAssign
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
TSourceLoc
loc
)
TIntermTyped
*
TIntermediate
::
addAssign
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
const
TSourceLoc
&
loc
)
{
// No block assignment
if
(
left
->
getType
().
getBasicType
()
==
EbtBlock
||
right
->
getType
().
getBasicType
()
==
EbtBlock
)
...
...
@@ -338,7 +338,8 @@ TIntermTyped* TIntermediate::addAssign(TOperator op, TIntermTyped* left, TInterm
// Returns the added node.
// The caller should set the type of the returned node.
//
TIntermTyped
*
TIntermediate
::
addIndex
(
TOperator
op
,
TIntermTyped
*
base
,
TIntermTyped
*
index
,
TSourceLoc
loc
)
TIntermTyped
*
TIntermediate
::
addIndex
(
TOperator
op
,
TIntermTyped
*
base
,
TIntermTyped
*
index
,
const
TSourceLoc
&
loc
)
{
// caller should set the type
return
addBinaryNode
(
op
,
base
,
index
,
loc
);
...
...
@@ -349,7 +350,8 @@ TIntermTyped* TIntermediate::addIndex(TOperator op, TIntermTyped* base, TIntermT
//
// Returns the added node.
//
TIntermTyped
*
TIntermediate
::
addUnaryMath
(
TOperator
op
,
TIntermTyped
*
child
,
TSourceLoc
loc
)
TIntermTyped
*
TIntermediate
::
addUnaryMath
(
TOperator
op
,
TIntermTyped
*
child
,
const
TSourceLoc
&
loc
)
{
if
(
child
==
0
)
return
nullptr
;
...
...
@@ -495,7 +497,8 @@ TIntermTyped* TIntermediate::addBuiltInFunctionCall(const TSourceLoc& loc, TOper
// Returns an aggregate node, which could be the one passed in if
// it was already an aggregate.
//
TIntermTyped
*
TIntermediate
::
setAggregateOperator
(
TIntermNode
*
node
,
TOperator
op
,
const
TType
&
type
,
TSourceLoc
loc
)
TIntermTyped
*
TIntermediate
::
setAggregateOperator
(
TIntermNode
*
node
,
TOperator
op
,
const
TType
&
type
,
const
TSourceLoc
&
loc
)
{
TIntermAggregate
*
aggNode
;
...
...
@@ -510,8 +513,6 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o
//
aggNode
=
new
TIntermAggregate
();
aggNode
->
getSequence
().
push_back
(
node
);
if
(
loc
.
line
==
0
)
loc
=
node
->
getLoc
();
}
}
else
aggNode
=
new
TIntermAggregate
();
...
...
@@ -520,8 +521,8 @@ TIntermTyped* TIntermediate::setAggregateOperator(TIntermNode* node, TOperator o
// Set the operator.
//
aggNode
->
setOperator
(
op
);
if
(
loc
.
line
!=
0
)
aggNode
->
setLoc
(
loc
);
if
(
loc
.
line
!=
0
||
node
!=
nullptr
)
aggNode
->
setLoc
(
loc
.
line
!=
0
?
loc
:
node
->
getLoc
()
);
aggNode
->
setType
(
type
);
...
...
glslang/MachineIndependent/localintermediate.h
View file @
6c37bbbb
...
...
@@ -430,10 +430,10 @@ public:
TIntermTyped
*
addConversion
(
TBasicType
convertTo
,
TIntermTyped
*
node
)
const
;
void
addBiShapeConversion
(
TOperator
,
TIntermTyped
*&
lhsNode
,
TIntermTyped
*&
rhsNode
);
TIntermTyped
*
addShapeConversion
(
const
TType
&
,
TIntermTyped
*
);
TIntermTyped
*
addBinaryMath
(
TOperator
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
TSourceLoc
);
TIntermTyped
*
addAssign
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
TSourceLoc
);
TIntermTyped
*
addIndex
(
TOperator
op
,
TIntermTyped
*
base
,
TIntermTyped
*
index
,
TSourceLoc
);
TIntermTyped
*
addUnaryMath
(
TOperator
,
TIntermTyped
*
child
,
TSourceLoc
);
TIntermTyped
*
addBinaryMath
(
TOperator
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
const
TSourceLoc
&
);
TIntermTyped
*
addAssign
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
const
TSourceLoc
&
);
TIntermTyped
*
addIndex
(
TOperator
op
,
TIntermTyped
*
base
,
TIntermTyped
*
index
,
const
TSourceLoc
&
);
TIntermTyped
*
addUnaryMath
(
TOperator
,
TIntermTyped
*
child
,
const
TSourceLoc
&
);
TIntermTyped
*
addBuiltInFunctionCall
(
const
TSourceLoc
&
line
,
TOperator
,
bool
unary
,
TIntermNode
*
,
const
TType
&
returnType
);
bool
canImplicitlyPromote
(
TBasicType
from
,
TBasicType
to
,
TOperator
op
=
EOpNull
)
const
;
bool
isIntegralPromotion
(
TBasicType
from
,
TBasicType
to
)
const
;
...
...
@@ -447,7 +447,7 @@ public:
TIntermAggregate
*
makeAggregate
(
TIntermNode
*
node
);
TIntermAggregate
*
makeAggregate
(
TIntermNode
*
node
,
const
TSourceLoc
&
);
TIntermAggregate
*
makeAggregate
(
const
TSourceLoc
&
);
TIntermTyped
*
setAggregateOperator
(
TIntermNode
*
,
TOperator
,
const
TType
&
type
,
TSourceLoc
);
TIntermTyped
*
setAggregateOperator
(
TIntermNode
*
,
TOperator
,
const
TType
&
type
,
const
TSourceLoc
&
);
bool
areAllChildConst
(
TIntermAggregate
*
aggrNode
);
TIntermSelection
*
addSelection
(
TIntermTyped
*
cond
,
TIntermNodePair
code
,
const
TSourceLoc
&
);
TIntermTyped
*
addSelection
(
TIntermTyped
*
cond
,
TIntermTyped
*
trueBlock
,
TIntermTyped
*
falseBlock
,
const
TSourceLoc
&
);
...
...
@@ -476,10 +476,11 @@ public:
// Low level functions to add nodes (no conversions or other higher level transformations)
// If a type is provided, the node's type will be set to it.
TIntermBinary
*
addBinaryNode
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
TSourceLoc
)
const
;
TIntermBinary
*
addBinaryNode
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
TSourceLoc
,
const
TType
&
)
const
;
TIntermUnary
*
addUnaryNode
(
TOperator
op
,
TIntermTyped
*
child
,
TSourceLoc
)
const
;
TIntermUnary
*
addUnaryNode
(
TOperator
op
,
TIntermTyped
*
child
,
TSourceLoc
,
const
TType
&
)
const
;
TIntermBinary
*
addBinaryNode
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
const
TSourceLoc
&
)
const
;
TIntermBinary
*
addBinaryNode
(
TOperator
op
,
TIntermTyped
*
left
,
TIntermTyped
*
right
,
const
TSourceLoc
&
,
const
TType
&
)
const
;
TIntermUnary
*
addUnaryNode
(
TOperator
op
,
TIntermTyped
*
child
,
const
TSourceLoc
&
)
const
;
TIntermUnary
*
addUnaryNode
(
TOperator
op
,
TIntermTyped
*
child
,
const
TSourceLoc
&
,
const
TType
&
)
const
;
// Constant folding (in Constant.cpp)
TIntermTyped
*
fold
(
TIntermAggregate
*
aggrNode
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment