Skip to content

Commit 85bc95c

Browse files
committed
Use colored error messages
1 parent 6daabaf commit 85bc95c

File tree

6 files changed

+36
-27
lines changed

6 files changed

+36
-27
lines changed

llvm/test/tools/llvm-ir2vec/embeddings-flowaware.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ entry:
4949
; CHECK-FUNC-LEVEL-ABC: Function: abc
5050
; CHECK-FUNC-LEVEL-NEXT-ABC: [ 3630.00 3672.00 3714.00 ]
5151

52-
; CHECK-FUNC-DEF: Error: Function 'def' not found
52+
; CHECK-FUNC-DEF: error: Function 'def' not found
5353

5454
; CHECK-BB-LEVEL: Function: abc
5555
; CHECK-BB-LEVEL-NEXT: entry: [ 3630.00 3672.00 3714.00 ]

llvm/test/tools/llvm-ir2vec/embeddings-symbolic.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ entry:
4949
; CHECK-FUNC-LEVEL-ABC: Function: abc
5050
; CHECK-FUNC-LEVEL-NEXT-ABC: [ 878.00 889.00 900.00 ]
5151

52-
; CHECK-FUNC-DEF: Error: Function 'def' not found
52+
; CHECK-FUNC-DEF: error: Function 'def' not found
5353

5454
; CHECK-BB-LEVEL: Function: abc
5555
; CHECK-BB-LEVEL-NEXT: entry: [ 878.00 889.00 900.00 ]

llvm/test/tools/llvm-ir2vec/embeddings-symbolic.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ body: |
6767
# CHECK-FUNC-LEVEL-ADD-NEXT: Function vector: [ 26.50 27.10 27.70 ]
6868
# CHECK-FUNC-LEVEL-ADD-NOT: simple_function
6969

70-
# CHECK-FUNC-MISSING: Error: Function 'missing_function' not found
70+
# CHECK-FUNC-MISSING: error: Function 'missing_function' not found
7171

7272
# CHECK-BB-LEVEL: MIR2Vec embeddings for machine function add_function:
7373
# CHECK-BB-LEVEL-NEXT: Basic block vectors:

llvm/test/tools/llvm-ir2vec/error-handling.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ entry:
1010
}
1111

1212
; CHECK-NO-VOCAB: error: IR2Vec vocabulary file path not specified; You may need to set it using --ir2vec-vocab-path
13-
; CHECK-FUNC-NOT-FOUND: Error: Function 'nonexistent' not found
13+
; CHECK-FUNC-NOT-FOUND: error: Function 'nonexistent' not found

llvm/test/tools/llvm-ir2vec/error-handling.mir

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ body: |
3131
$eax = COPY %0
3232
RET 0, $eax
3333
34-
# CHECK-NO-VOCAB: Error: Failed to load MIR2Vec vocabulary - MIR2Vec vocabulary file path not specified; set it using --mir2vec-vocab-path
34+
# CHECK-NO-VOCAB: error: Failed to load MIR2Vec vocabulary - MIR2Vec vocabulary file path not specified; set it using --mir2vec-vocab-path
3535

36-
# CHECK-VOCAB-NOT-FOUND: Error: Failed to load MIR2Vec vocabulary
36+
# CHECK-VOCAB-NOT-FOUND: error: Failed to load MIR2Vec vocabulary
3737
# CHECK-VOCAB-NOT-FOUND: No such file or directory
3838

39-
# CHECK-INVALID-VOCAB: Error: Failed to load MIR2Vec vocabulary - Missing 'Opcodes' section in vocabulary file
39+
# CHECK-INVALID-VOCAB: error: Failed to load MIR2Vec vocabulary - Missing 'Opcodes' section in vocabulary file
4040

41-
# CHECK-FUNC-NOT-FOUND: Error: Function 'nonexistent_function' not found
41+
# CHECK-FUNC-NOT-FOUND: error: Function 'nonexistent_function' not found

llvm/tools/llvm-ir2vec/llvm-ir2vec.cpp

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,8 @@
7777

7878
namespace llvm {
7979

80+
static const char *ToolName = "llvm-ir2vec";
81+
8082
// Common option category for options shared between IR2Vec and MIR2Vec
8183
static cl::OptionCategory CommonCategory("Common Options",
8284
"Options applicable to both IR2Vec "
@@ -258,7 +260,8 @@ class IR2VecTool {
258260
/// Generate embeddings for the entire module
259261
void generateEmbeddings(raw_ostream &OS) const {
260262
if (!Vocab->isValid()) {
261-
OS << "Error: Vocabulary is not valid. IR2VecTool not initialized.\n";
263+
WithColor::error(errs(), ToolName)
264+
<< "Vocabulary is not valid. IR2VecTool not initialized.\n";
262265
return;
263266
}
264267

@@ -277,8 +280,8 @@ class IR2VecTool {
277280
assert(Vocab->isValid() && "Vocabulary is not valid");
278281
auto Emb = Embedder::create(IR2VecEmbeddingKind, F, *Vocab);
279282
if (!Emb) {
280-
OS << "Error: Failed to create embedder for function " << F.getName()
281-
<< "\n";
283+
WithColor::error(errs(), ToolName)
284+
<< "Failed to create embedder for function " << F.getName() << "\n";
282285
return;
283286
}
284287

@@ -351,13 +354,14 @@ class MIR2VecTool {
351354
public:
352355
explicit MIR2VecTool(MachineModuleInfo &MMI) : MMI(MMI) {}
353356

354-
/// Initialize the MIR2Vec vocabulary
357+
/// Initialize MIR2Vec vocabulary
355358
bool initializeVocabulary(const Module &M) {
356359
MIR2VecVocabProvider Provider(MMI);
357360
auto VocabOrErr = Provider.getVocabulary(M);
358361
if (!VocabOrErr) {
359-
errs() << "Error: Failed to load MIR2Vec vocabulary - "
360-
<< toString(VocabOrErr.takeError()) << "\n";
362+
WithColor::error(errs(), ToolName)
363+
<< "Failed to load MIR2Vec vocabulary - "
364+
<< toString(VocabOrErr.takeError()) << "\n";
361365
return false;
362366
}
363367
Vocab = std::make_unique<MIRVocabulary>(std::move(*VocabOrErr));
@@ -367,7 +371,7 @@ class MIR2VecTool {
367371
/// Generate embeddings for all machine functions in the module
368372
void generateEmbeddings(const Module &M, raw_ostream &OS) const {
369373
if (!Vocab) {
370-
OS << "Error: Vocabulary not initialized.\n";
374+
WithColor::error(errs(), ToolName) << "Vocabulary not initialized.\n";
371375
return;
372376
}
373377

@@ -377,7 +381,8 @@ class MIR2VecTool {
377381

378382
MachineFunction *MF = MMI.getMachineFunction(F);
379383
if (!MF) {
380-
errs() << "Warning: No MachineFunction for " << F.getName() << "\n";
384+
WithColor::warning(errs(), ToolName)
385+
<< "No MachineFunction for " << F.getName() << "\n";
381386
continue;
382387
}
383388

@@ -388,13 +393,14 @@ class MIR2VecTool {
388393
/// Generate embeddings for a specific machine function
389394
void generateEmbeddings(MachineFunction &MF, raw_ostream &OS) const {
390395
if (!Vocab) {
391-
OS << "Error: Vocabulary not initialized.\n";
396+
WithColor::error(errs(), ToolName) << "Vocabulary not initialized.\n";
392397
return;
393398
}
394399

395400
auto Emb = MIREmbedder::create(MIR2VecKind::Symbolic, MF, *Vocab);
396401
if (!Emb) {
397-
errs() << "Error: Failed to create embedder for " << MF.getName() << "\n";
402+
WithColor::error(errs(), ToolName)
403+
<< "Failed to create embedder for " << MF.getName() << "\n";
398404
return;
399405
}
400406

@@ -456,7 +462,8 @@ int main(int argc, char **argv) {
456462
std::error_code EC;
457463
raw_fd_ostream OS(OutputFilename, EC);
458464
if (EC) {
459-
errs() << "Error opening output file: " << EC.message() << "\n";
465+
WithColor::error(errs(), ToolName)
466+
<< "opening output file: " << EC.message() << "\n";
460467
return 1;
461468
}
462469

@@ -472,13 +479,13 @@ int main(int argc, char **argv) {
472479
LLVMContext Context;
473480
std::unique_ptr<Module> M = parseIRFile(InputFilename, Err, Context);
474481
if (!M) {
475-
Err.print(argv[0], errs());
482+
Err.print(ToolName, errs());
476483
return 1;
477484
}
478485

479486
if (Error Err = processModule(*M, OS)) {
480487
handleAllErrors(std::move(Err), [&](const ErrorInfoBase &EIB) {
481-
errs() << "Error: " << EIB.message() << "\n";
488+
WithColor::error(errs(), ToolName) << EIB.message() << "\n";
482489
});
483490
return 1;
484491
}
@@ -499,7 +506,7 @@ int main(int argc, char **argv) {
499506

500507
auto MIR = createMIRParserFromFile(InputFilename, Err, Context);
501508
if (!MIR) {
502-
Err.print(argv[0], WithColor::error(errs(), argv[0]));
509+
Err.print(ToolName, errs());
503510
return 1;
504511
}
505512

@@ -511,7 +518,7 @@ int main(int argc, char **argv) {
511518
TheTriple.setTriple(sys::getDefaultTargetTriple());
512519
auto TMOrErr = codegen::createTargetMachineForTriple(TheTriple.str());
513520
if (!TMOrErr) {
514-
Err.print(argv[0], WithColor::error(errs(), argv[0]));
521+
Err.print(ToolName, errs());
515522
exit(1);
516523
}
517524
TM = std::move(*TMOrErr);
@@ -520,14 +527,14 @@ int main(int argc, char **argv) {
520527

521528
std::unique_ptr<Module> M = MIR->parseIRModule(SetDataLayout);
522529
if (!M) {
523-
Err.print(argv[0], WithColor::error(errs(), argv[0]));
530+
Err.print(ToolName, errs());
524531
return 1;
525532
}
526533

527534
// Parse machine functions
528535
auto MMI = std::make_unique<MachineModuleInfo>(TM.get());
529536
if (!MMI || MIR->parseMachineFunctions(*M, *MMI)) {
530-
Err.print(argv[0], WithColor::error(errs(), argv[0]));
537+
Err.print(ToolName, errs());
531538
return 1;
532539
}
533540

@@ -547,13 +554,15 @@ int main(int argc, char **argv) {
547554
// Process single function
548555
Function *F = M->getFunction(FunctionName);
549556
if (!F) {
550-
errs() << "Error: Function '" << FunctionName << "' not found\n";
557+
WithColor::error(errs(), ToolName)
558+
<< "Function '" << FunctionName << "' not found\n";
551559
return 1;
552560
}
553561

554562
MachineFunction *MF = MMI->getMachineFunction(*F);
555563
if (!MF) {
556-
errs() << "Error: No MachineFunction for " << FunctionName << "\n";
564+
WithColor::error(errs(), ToolName)
565+
<< "No MachineFunction for " << FunctionName << "\n";
557566
return 1;
558567
}
559568

0 commit comments

Comments
 (0)