@@ -74,21 +74,15 @@ void TargetCode::generateCode(llvm::raw_ostream &Out) {
74
74
std::shared_ptr<TargetCodeFragment> Frag = *i;
75
75
auto *TCR = llvm::dyn_cast<TargetCodeRegion>(Frag.get ());
76
76
77
- auto PrettyCode = Frag->PrintPretty ();
78
-
79
- // This is a workaround, since "Decl::print" includes "pragma omp declare".
80
- if (PrettyCode != " " )
81
- TargetCodeRewriter.ReplaceText (Frag->getSpellingRange (), PrettyCode);
82
-
83
77
if (TCR) {
84
- generateFunctionPrologue (TCR);
78
+ generateFunctionPrologue (TCR, Out );
85
79
}
80
+
81
+ Out << Frag->PrintPretty ();
86
82
87
83
if (TCR) {
88
- generateFunctionEpilogue (TCR);
84
+ generateFunctionEpilogue (TCR, Out );
89
85
}
90
- Out << " \n " ;
91
- Out << TargetCodeRewriter.getRewrittenText (Frag->getSpellingRange ());
92
86
93
87
if (Frag->NeedsSemicolon ) {
94
88
Out << " ;" ;
@@ -97,12 +91,10 @@ void TargetCode::generateCode(llvm::raw_ostream &Out) {
97
91
}
98
92
}
99
93
100
- void TargetCode::generateFunctionPrologue (TargetCodeRegion *TCR) {
94
+ void TargetCode::generateFunctionPrologue (TargetCodeRegion *TCR,
95
+ llvm::raw_ostream &Out) {
101
96
102
97
std::string Prologue;
103
- llvm::raw_string_ostream Out (Prologue);
104
-
105
- auto tmpSL = TCR->getStartLoc ();
106
98
107
99
std::list<int > nDim;
108
100
std::list<std::string> DimString;
@@ -204,15 +196,10 @@ void TargetCode::generateFunctionPrologue(TargetCodeRegion *TCR) {
204
196
}
205
197
}
206
198
Out << " \n " ;
207
-
208
- if (TargetCodeRewriter.InsertTextBefore (tmpSL, Out.str ()) == true )
209
- llvm::errs () << " ERROR: Prologue was not written\n " ;
210
199
}
211
200
212
- void TargetCode::generateFunctionEpilogue (TargetCodeRegion *TCR) {
213
- std::stringstream Out;
214
- auto tmpSL = TCR->getEndLoc ();
215
-
201
+ void TargetCode::generateFunctionEpilogue (TargetCodeRegion *TCR,
202
+ llvm::raw_ostream &Out) {
216
203
if (OmpPragma (TCR).needsStructuredBlock ()) {
217
204
Out << " \n }" ;
218
205
}
@@ -244,8 +231,6 @@ void TargetCode::generateFunctionEpilogue(TargetCodeRegion *TCR) {
244
231
}
245
232
246
233
Out << " \n }\n " ;
247
- if (TargetCodeRewriter.InsertTextBefore (tmpSL, Out.str ()) == true )
248
- llvm::errs () << " ERROR: Epilogue was not written\n " ;
249
234
}
250
235
251
236
std::string TargetCode::generateFunctionName (TargetCodeRegion *TCR) {
0 commit comments