Changeset 5776
- Timestamp:
- Dec 12, 2017, 8:27:47 AM (15 months ago)
- Location:
- icGREP/icgrep-devel/icgrep/pablo
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
icGREP/icgrep-devel/icgrep/pablo/pablo_toolchain.cpp
r5732 r5776 31 31 32 32 static cl::bits<PabloDebugFlags> 33 DebugOptions(cl::values(clEnumVal(ShowPablo, "Print generated Pablo code"), 34 clEnumVal(ShowOptimizedPablo, "Print optimizeed Pablo code"), 35 clEnumVal(VerifyPablo, "Run the Pablo verifier"), 33 DebugOptions(cl::values(clEnumVal(VerifyPablo, "Run the Pablo verifier"), 36 34 clEnumVal(DumpTrace, "Generate dynamic traces of executed Pablo assignments.") 37 35 CL_ENUM_VAL_SENTINEL), cl::cat(PabloOptions)); 38 36 39 static cl::opt<std::string> PabloOutputFilename("print-pablo-output", cl::init(""), cl::desc("output Pablo filename"), cl::cat(PabloOptions)); 37 std::string ShowPabloOption = codegen::OmittedOption; 38 static cl::opt<std::string, true> PabloOutputOption("ShowPablo", cl::location(ShowPabloOption), cl::ValueOptional, 39 cl::desc("Print generated Pablo code to stderr (by omitting =<filename>) or a file"), cl::value_desc("filename"), cl::cat(PabloOptions)); 40 sys::fs::OpenFlags PabloOutputFileFlag = sys::fs::OpenFlags::F_None; 41 42 std::string ShowOptimizedPabloOption = codegen::OmittedOption; 43 static cl::opt<std::string, true> OptimizedPabloOutputOption("ShowOptimizedPablo", cl::location(ShowOptimizedPabloOption), cl::ValueOptional, 44 cl::desc("Print optimized Pablo code to stderr (by omitting =<filename>) or a file"), cl::value_desc("filename"), cl::cat(PabloOptions)); 45 sys::fs::OpenFlags PabloOptimizedOutputFileFlag = sys::fs::OpenFlags::F_None; 46 40 47 static cl::opt<bool> Flatten("flatten-if", cl::init(false), cl::desc("Flatten all the Ifs in the Pablo AST"), cl::cat(PabloOptions)); 41 48 … … 51 58 52 59 bool CompileOptionIsSet(const PabloCompilationFlags flag) {return PabloOptimizationsOptions.isSet(flag);} 60 61 53 62 54 63 void pablo_function_passes(PabloKernel * kernel) { 55 64 56 if ( DebugOptions.isSet(ShowPablo)) {65 if (ShowPabloOption != codegen::OmittedOption) { 57 66 //Print to the terminal the AST that was generated by the pararallel bit-stream compiler. 58 errs() << "Initial Pablo AST:\n"; 59 PabloPrinter::print(kernel, errs()); 67 if (ShowPabloOption.empty()) { 68 errs() << "Initial Pablo AST:\n"; 69 PabloPrinter::print(kernel, errs()); 70 } else { 71 std::error_code error; 72 llvm::raw_fd_ostream out(ShowPabloOption, error, PabloOutputFileFlag); 73 PabloPrinter::print(kernel, out); 74 PabloOutputFileFlag = sys::fs::OpenFlags::F_Append; // append subsequent Pablo kernels 75 } 60 76 } 61 77 … … 84 100 SchedulingPrePass::optimize(kernel); 85 101 } 86 if ( DebugOptions.isSet(ShowOptimizedPablo)) {87 if ( PabloOutputFilename.empty()) {88 //Print to the terminal the AST that was generated by the pararallel bit-stream compiler.102 if (ShowOptimizedPabloOption != codegen::OmittedOption) { 103 if (ShowOptimizedPabloOption.empty()) { 104 //Print to the terminal the final Pablo AST after optimization. 89 105 errs() << "Final Pablo AST:\n"; 90 106 PabloPrinter::print(kernel, errs()); 91 107 } else { 92 108 std::error_code error; 93 llvm::raw_fd_ostream out( PabloOutputFilename, error, sys::fs::OpenFlags::F_None);109 llvm::raw_fd_ostream out(ShowOptimizedPabloOption, error, PabloOptimizedOutputFileFlag); 94 110 PabloPrinter::print(kernel, out); 111 PabloOptimizedOutputFileFlag = sys::fs::OpenFlags::F_Append; // append subsequent Pablo kernels 95 112 } 96 113 } -
icGREP/icgrep-devel/icgrep/pablo/pablo_toolchain.h
r5620 r5776 14 14 15 15 enum PabloDebugFlags { 16 ShowPablo, ShowOptimizedPablo,VerifyPablo, DumpTrace,16 VerifyPablo, DumpTrace, 17 17 }; 18 extern std::string ShowOptimizedPabloOption; 19 extern std::string ShowPabloOption; 18 20 19 21 enum PabloCompilationFlags {
Note: See TracChangeset
for help on using the changeset viewer.