[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

2025-05-09 Thread Walter J.T.V via cfe-commits


@@ -3223,6 +3223,8 @@ LValue CodeGenFunction::EmitDeclRefLValue(const 
DeclRefExpr *E) {
 
 // No other cases for now.
 } else {
+  llvm::dbgs() << "THE DAMN DECLREFEXPR HASN'T BEEN ENTERED IN 
LOCALDECLMAP\n";
+  VD->dumpColor();

eZWALT wrote:

Oops, thanks!

https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

2025-05-09 Thread Walter J.T.V via cfe-commits


@@ -5378,6 +5379,10 @@ class CodeGenFunction : public CodeGenTypeCache {
 
   /// Set the address of a local variable.
   void setAddrOfLocalVar(const VarDecl *VD, Address Addr) {
+if (LocalDeclMap.count(VD)) {
+  llvm::errs() << "Warning: VarDecl already exists in map: ";
+  VD->dumpColor(); 
+}

eZWALT wrote:

Oops, thanks!

https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

2025-05-09 Thread Walter J.T.V via cfe-commits


@@ -5790,7 +5805,11 @@ class OMPReverseDirective final : public 
OMPLoopTransformationDirective {
   explicit OMPReverseDirective(SourceLocation StartLoc, SourceLocation EndLoc)
   : OMPLoopTransformationDirective(OMPReverseDirectiveClass,
llvm::omp::OMPD_reverse, StartLoc,
-   EndLoc, 1) {}
+   EndLoc, 1) {
+// Reverse produces a single top-level canonical loop nest
+setNumGeneratedLoops(1);

eZWALT wrote:

Okey do i make another pull request just for the loop corrections though?

https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

2025-05-09 Thread Walter J.T.V via cfe-commits


@@ -962,6 +962,9 @@ class OMPLoopTransformationDirective : public 
OMPLoopBasedDirective {
 
   /// Number of loops generated by this loop transformation.
   unsigned NumGeneratedLoops = 0;
+  /// Number of top level canonical loop nests generated by this loop
+  /// transformation
+  unsigned NumGeneratedLoopNests = 0;

eZWALT wrote:

Maybe the name is a bit unfortunate and could be improved, but they are 2 
completely different fields conceptually. This top level loops are the ones 
actually managed by loop Sequence constructs like fuse and the upcoming split. 
A loop sequence contains loops which may contain several inner nestes loops, 
but these should not be taken into account for performing fusion or splitting.  
This was not taken into account originally due to all transformations having a 
fixed number of generated top level nests (1). However fuse or split may 
generate several loop nests with inner nested loops.

https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

2025-05-09 Thread Walter J.T.V via cfe-commits


@@ -962,6 +962,9 @@ class OMPLoopTransformationDirective : public 
OMPLoopBasedDirective {
 
   /// Number of loops generated by this loop transformation.
   unsigned NumGeneratedLoops = 0;
+  /// Number of top level canonical loop nests generated by this loop
+  /// transformation
+  unsigned NumGeneratedLoopNests = 0;

eZWALT wrote:

Note that unroll is an exception, it could have 0 or 1 but it coincides 
perfectly with the original number of loops .

https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

2025-05-09 Thread Walter J.T.V via cfe-commits

https://github.com/eZWALT edited 
https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

2025-05-09 Thread Walter J.T.V via cfe-commits

https://github.com/eZWALT edited 
https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[clang] [flang] [llvm] [openmp] [Clang][OpenMP][LoopTransformations] Add support for "#pragma omp fuse" loop transformation direcrive and "looprange" clause (PR #139293)

2025-05-10 Thread Walter J.T.V via cfe-commits

eZWALT wrote:

I want to notify that the following week I'll be unavailable, so expect this 
patch to be updated on the 20th of May. Thanks for the feedback @alexey-bataev 

https://github.com/llvm/llvm-project/pull/139293
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits