[gem5-dev] Change in gem5/gem5[master]: arch-arm: Simplify AMO code generation templates

2019-11-06 Thread Nikos Nikoleris (Gerrit)
Nikos Nikoleris has submitted this change. (  
https://gem5-review.googlesource.com/c/public/gem5/+/22603 )


Change subject: arch-arm: Simplify AMO code generation templates
..

arch-arm: Simplify AMO code generation templates

This change simplifies the isa template for the atomic memory
operation (AMO). Previously the flow had unecessary if statements that
ended up breaking build using clang, due to variables that could
seemingly be used before they were unitialized.

Change-Id: I1b46dfd5f1e90377245c4f649c08b6532b507b9c
Signed-off-by: Nikos Nikoleris 
Reviewed-by: Giacomo Travaglini 
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22603
Maintainer: Giacomo Travaglini 
Tested-by: kokoro 
---
M src/arch/arm/isa/templates/mem64.isa
1 file changed, 14 insertions(+), 34 deletions(-)

Approvals:
  Giacomo Travaglini: Looks good to me, approved; Looks good to me, approved
  kokoro: Regressions pass



diff --git a/src/arch/arm/isa/templates/mem64.isa  
b/src/arch/arm/isa/templates/mem64.isa

index e5df801..3d0302a 100644
--- a/src/arch/arm/isa/templates/mem64.isa
+++ b/src/arch/arm/isa/templates/mem64.isa
@@ -737,34 +737,27 @@
   Trace::InstRecord *traceData) const
 {
 Addr EA;
-Fault fault = NoFault;

 %(op_decl)s;
 %(op_rd)s;
 %(ea_code)s;

 %(usrDecl)s;
-if (fault == NoFault) {
-%(memacc_code)s;
-}

-%(amo_code)s
+%(memacc_code)s;
+
+%(amo_code)s;
 assert(amo_op);

-if (fault == NoFault) {
-fault = amoMemAtomic(xc, traceData, Mem, EA,
-memAccessFlags, amo_op);
-}
+const Fault fault = amoMemAtomic(xc, traceData, Mem, EA,
+ memAccessFlags, amo_op);

 if (fault == NoFault) {
 %(postacc_code)s;
-}
-
-if (fault == NoFault) {
 %(op_wb)s;
 }

- return fault;
+return fault;
 }
 }};

@@ -773,26 +766,19 @@
   Trace::InstRecord *traceData) const
 {
 Addr EA;
-Fault fault = NoFault;

 %(op_src_decl)s;
 %(op_rd)s;
 %(ea_code)s;
 %(usrDecl)s;

-if (fault == NoFault) {
-%(memacc_code)s;
-}
+%(memacc_code)s;

 %(amo_code)s;

 assert(amo_op);
-if (fault == NoFault) {
-fault = initiateMemAMO(xc, traceData, EA, Mem, memAccessFlags,
-   amo_op);
-}
-
-return fault;
+return initiateMemAMO(xc, traceData, EA, Mem, memAccessFlags,
+  amo_op);
  }
 }};

@@ -800,23 +786,17 @@
 Fault %(class_name)s::completeAcc(PacketPtr pkt, ExecContext *xc,
   Trace::InstRecord *traceData) const
 {
- Fault fault = NoFault;
-
- %(op_decl)s;
- %(op_rd)s;
+%(op_decl)s;
+%(op_rd)s;

  // ARM instructions will not have a pkt if the predicate is false
 getMem(pkt, Mem, traceData);

-if (fault == NoFault) {
-%(postacc_code)s;
-}
+%(postacc_code)s;

-if (fault == NoFault) {
-%(op_wb)s;
-}
+%(op_wb)s;

- return fault;
+return NoFault;
 }

 }};

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/22603
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I1b46dfd5f1e90377245c4f649c08b6532b507b9c
Gerrit-Change-Number: 22603
Gerrit-PatchSet: 2
Gerrit-Owner: Nikos Nikoleris 
Gerrit-Reviewer: Giacomo Travaglini 
Gerrit-Reviewer: Nikos Nikoleris 
Gerrit-Reviewer: kokoro 
Gerrit-MessageType: merged
___
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev

[gem5-dev] Change in gem5/gem5[master]: arch-arm: Simplify AMO code generation templates

2019-11-06 Thread Nikos Nikoleris (Gerrit)

Hello Giacomo Travaglini,

I'd like you to do a code review. Please visit

https://gem5-review.googlesource.com/c/public/gem5/+/22603

to review the following change.


Change subject: arch-arm: Simplify AMO code generation templates
..

arch-arm: Simplify AMO code generation templates

This change simplifies the isa template for the atomic memory
operation (AMO). Previously the flow had unecessary if statements that
ended up breaking build using clang, due to variables that could
seemingly be used before they were unitialized.

Change-Id: I1b46dfd5f1e90377245c4f649c08b6532b507b9c
Signed-off-by: Nikos Nikoleris 
Reviewed-by: Giacomo Travaglini 
---
M src/arch/arm/isa/templates/mem64.isa
1 file changed, 14 insertions(+), 34 deletions(-)



diff --git a/src/arch/arm/isa/templates/mem64.isa  
b/src/arch/arm/isa/templates/mem64.isa

index e5df801..3d0302a 100644
--- a/src/arch/arm/isa/templates/mem64.isa
+++ b/src/arch/arm/isa/templates/mem64.isa
@@ -737,34 +737,27 @@
   Trace::InstRecord *traceData) const
 {
 Addr EA;
-Fault fault = NoFault;

 %(op_decl)s;
 %(op_rd)s;
 %(ea_code)s;

 %(usrDecl)s;
-if (fault == NoFault) {
-%(memacc_code)s;
-}

-%(amo_code)s
+%(memacc_code)s;
+
+%(amo_code)s;
 assert(amo_op);

-if (fault == NoFault) {
-fault = amoMemAtomic(xc, traceData, Mem, EA,
-memAccessFlags, amo_op);
-}
+const Fault fault = amoMemAtomic(xc, traceData, Mem, EA,
+ memAccessFlags, amo_op);

 if (fault == NoFault) {
 %(postacc_code)s;
-}
-
-if (fault == NoFault) {
 %(op_wb)s;
 }

- return fault;
+return fault;
 }
 }};

@@ -773,26 +766,19 @@
   Trace::InstRecord *traceData) const
 {
 Addr EA;
-Fault fault = NoFault;

 %(op_src_decl)s;
 %(op_rd)s;
 %(ea_code)s;
 %(usrDecl)s;

-if (fault == NoFault) {
-%(memacc_code)s;
-}
+%(memacc_code)s;

 %(amo_code)s;

 assert(amo_op);
-if (fault == NoFault) {
-fault = initiateMemAMO(xc, traceData, EA, Mem, memAccessFlags,
-   amo_op);
-}
-
-return fault;
+return initiateMemAMO(xc, traceData, EA, Mem, memAccessFlags,
+  amo_op);
  }
 }};

@@ -800,23 +786,17 @@
 Fault %(class_name)s::completeAcc(PacketPtr pkt, ExecContext *xc,
   Trace::InstRecord *traceData) const
 {
- Fault fault = NoFault;
-
- %(op_decl)s;
- %(op_rd)s;
+%(op_decl)s;
+%(op_rd)s;

  // ARM instructions will not have a pkt if the predicate is false
 getMem(pkt, Mem, traceData);

-if (fault == NoFault) {
-%(postacc_code)s;
-}
+%(postacc_code)s;

-if (fault == NoFault) {
-%(op_wb)s;
-}
+%(op_wb)s;

- return fault;
+return NoFault;
 }

 }};

--
To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/22603
To unsubscribe, or for help writing mail filters, visit  
https://gem5-review.googlesource.com/settings


Gerrit-Project: public/gem5
Gerrit-Branch: master
Gerrit-Change-Id: I1b46dfd5f1e90377245c4f649c08b6532b507b9c
Gerrit-Change-Number: 22603
Gerrit-PatchSet: 1
Gerrit-Owner: Nikos Nikoleris 
Gerrit-Reviewer: Giacomo Travaglini 
Gerrit-MessageType: newchange
___
gem5-dev mailing list
gem5-dev@gem5.org
http://m5sim.org/mailman/listinfo/gem5-dev