|
3272a6d3
|
2016-08-29T17:54:50
|
|
Promote and fold indexing nodes similarly to other binary ops
Indexing nodes now get their type set in TIntermBinary::promote, same
as math and logic ops. They are also constant folded through
TIntermBinary::fold() instead of having special functions for constant
folding them in ParseContext.
Index nodes for struct and interface block member access now always
have integer type, instead of sometimes having the type of the field
they were used to access.
Usage of TIntermBinary constructor is cleaned up so only the
constructor that takes in left and right operands is used. The type
of TIntermBinary nodes is always determined automatically.
Together these changes make the code considerably cleaner.
Note that the code for constant folding for array indexing is actually
never hit because constant folding array constructors is still
intentionally disabled in the code.
BUG=angleproject:1490
TEST=angle_unittests
Change-Id: Ifcec45257476cdb0d495c7d72e3cf2f83388e8c5
Reviewed-on: https://chromium-review.googlesource.com/377961
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>
|
|
6c9503ec
|
2016-08-16T14:06:32
|
|
D3D11: Improve integer pow workaround.
A slight bug in the problem case detection applied the workaround
overly-broadly. Also included a much more thorough test.
BUG=angleproject:851
Change-Id: I5c09d67eee3622c144401769af85958f23b60c57
Reviewed-on: https://chromium-review.googlesource.com/371380
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
5655b849
|
2016-08-02T11:00:07
|
|
D3D11: Fix integer pow workaround for nested pows.
For some nested pow expressions, queueing two node replacements in the
same tree traversal would mangle tree, resulting in invalid code. Fix
this by iterating over the tree until no replacements are found, and
doing one replacement each iteration.
BUG=angleproject:851
Change-Id: Ie08ab23f4bfe3d5f32726856afc61ff1f3d6c789
Reviewed-on: https://chromium-review.googlesource.com/365400
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
03d863c8
|
2016-07-27T18:15:53
|
|
translator: Refactor node replacement APIs.
BUG=angleproject:851
Change-Id: I50c3b3a4f00b27fed85f09509738513a441c7b5b
Reviewed-on: https://chromium-review.googlesource.com/363990
Reviewed-by: Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|
|
1048e43f
|
2016-07-23T18:51:28
|
|
D3D: Work around HLSL integer pow folding bug.
BUG=angleproject:851
Change-Id: I68a47b8343a29e42c0a69ca3f2a6cb5054d03782
Reviewed-on: https://chromium-review.googlesource.com/362775
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
|