Browse Source

* do the left.equals(right) check before might_have_sideeffects, because
left.equals(right) is usually faster

git-svn-id: trunk@36033 -

nickysn 8 years ago
parent
commit
6d589f415b
1 changed files with 2 additions and 4 deletions
  1. 2 4
      compiler/nadd.pas

+ 2 - 4
compiler/nadd.pas

@@ -976,8 +976,7 @@ implementation
                   side effects, because this can change the result (e.g., in an
                   side effects, because this can change the result (e.g., in an
                   or-node that calls the same function twice and first returns
                   or-node that calls the same function twice and first returns
                   false and then true because of a global state change }
                   false and then true because of a global state change }
-                if not might_have_sideeffects(left) and
-                  left.isequal(right) then
+                if left.isequal(right) and not might_have_sideeffects(left) then
                   begin
                   begin
                     case nodetype of
                     case nodetype of
                       andn,orn:
                       andn,orn:
@@ -1016,8 +1015,7 @@ implementation
 
 
             if is_integer(left.resultdef) and is_integer(right.resultdef) then
             if is_integer(left.resultdef) and is_integer(right.resultdef) then
               begin
               begin
-                if not might_have_sideeffects(left) and
-                  left.isequal(right) then
+                if left.isequal(right) and not might_have_sideeffects(left) then
                   begin
                   begin
                     case nodetype of
                     case nodetype of
                       andn,orn:
                       andn,orn: