Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimization suggestion 1 #17433

Closed
stevemessick opened this issue Mar 12, 2014 · 2 comments
Closed

Optimization suggestion 1 #17433

stevemessick opened this issue Mar 12, 2014 · 2 comments
Labels
closed-obsolete Closed as the reported issue is no longer relevant dart2js-optimization type-enhancement A request for a change that isn't a bug web-dart2js

Comments

@stevemessick
Copy link
Contributor

[user feedback]

Generated js code based on spectre: vertexBufferCursor is always checked for less than zero even if it is always increased and will never fall under zero this way.

_prepareForRender$1: [function(context) {
      var vertexBufferLength, t1, vertexBufferCursor, line, v, t2, t3, vertexBufferCursor0, t4, t5;
      vertexBufferLength = this._vboStorage.length;
      for (t1 = this.lines._lineObjects, t1 = H.setRuntimeTypeInfo(new H.ListIterator(t1, t1.length, 0, null), [H.getTypeArgumentByIndex(t1, 0)]), vertexBufferCursor = 0; t1.moveNext$0();) {
        line = t1._current;
        v = line.get$vertexStream();
        for (t2 = J.getInterceptor$x(line); v != null; vertexBufferCursor = vertexBufferCursor0) {
          t3 = this._vboStorage;
          vertexBufferCursor0 = vertexBufferCursor + 1;
          t4 = J.getInterceptor$x(v);
          t5 = t4.get$x(v);
          if (vertexBufferCursor < 0 || vertexBufferCursor >= t3.length)
            return H.ioore(t3, vertexBufferCursor);
          t3[vertexBufferCursor] = t5;
          t5 = this._vboStorage;
          vertexBufferCursor = vertexBufferCursor0 + 1;
          t3 = t4.get$y(v);
          if (vertexBufferCursor0 < 0 || vertexBufferCursor0 >= t5.length)
            return H.ioore(t5, vertexBufferCursor0);
          t5[vertexBufferCursor0] = t3;
          t3 = this._vboStorage;
          vertexBufferCursor0 = vertexBufferCursor + 1;
          t5 = t4.get$z(v);
          if (vertexBufferCursor < 0 || vertexBufferCursor >= t3.length)
            return H.ioore(t3, vertexBufferCursor);
          t3[vertexBufferCursor] = t5;
          t5 = this._vboStorage;
          vertexBufferCursor = vertexBufferCursor0 + 1;
          t3 = t2.get$r(line);
          if (vertexBufferCursor0 < 0 || vertexBufferCursor0 >= t5.length)
            return H.ioore(t5, vertexBufferCursor0);
          t5[vertexBufferCursor0] = t3;
          t3 = this._vboStorage;
          vertexBufferCursor0 = vertexBufferCursor + 1;
          t5 = line.get$g();
          if (vertexBufferCursor < 0 || vertexBufferCursor >= t3.length)
            return H.ioore(t3, vertexBufferCursor);
          t3[vertexBufferCursor] = t5;
          t5 = this._vboStorage;
          vertexBufferCursor = vertexBufferCursor0 + 1;
          t3 = t2.get$b(line);
          if (vertexBufferCursor0 < 0 || vertexBufferCursor0 >= t5.length)
            return H.ioore(t5, vertexBufferCursor0);
          t5[vertexBufferCursor0] = t3;
          t3 = this._vboStorage;
          vertexBufferCursor0 = vertexBufferCursor + 1;
          t5 = t2.get$a(line);
          if (vertexBufferCursor < 0 || vertexBufferCursor >= t3.length)
            return H.ioore(t3, vertexBufferCursor);
          t3[vertexBufferCursor] = t5;
          v = t4.get$next(v);
          if (vertexBufferCursor0 === vertexBufferLength) {
            vertexBufferCursor = vertexBufferCursor0;
            break;
          }
        }
        if (vertexBufferCursor === vertexBufferLength)
          break;
      }
      if (vertexBufferCursor !== 0)
        this._lineMesh._deviceVertexBuffer.uploadSubData$2(0, this._vboStorage);
      this._lineMesh.count = C.JSInt_methods._tdivFast$1(vertexBufferCursor, 7);
    }, "call$1", "get$_prepareForRender", 2, 0, null, 94, []],
////////////////////////////////////////////////////////////////////////////////////
Editor: 1.3.0.dev_03_02 (2014-03-10)
OS: Windows 8 - amd64 (6.2)
JVM: 1.7.0_45

projects: 2

open dart files: 0

auto-run pub: true
localhost resolves to: 127.0.0.1
mem max/total/free: 1778 / 871 / 325 MB
thread count: 27
index: 454614 relationships in 70819 keys in 435 sources

SDK installed: true
Dartium installed: true

@floitschG
Copy link
Contributor

cc @herhut-ggl.
Removed the owner.
Added Optimization label.

@ghost
Copy link

ghost commented Mar 13, 2014

Added Accepted label.

@kevmoo kevmoo added type-enhancement A request for a change that isn't a bug and removed priority-unassigned labels Feb 29, 2016
@matanlurey matanlurey added the closed-obsolete Closed as the reported issue is no longer relevant label Jun 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
closed-obsolete Closed as the reported issue is no longer relevant dart2js-optimization type-enhancement A request for a change that isn't a bug web-dart2js
Projects
None yet
Development

No branches or pull requests

4 participants