12bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg/*===-- targets.c - tool for testing libLLVM and llvm-c API ---------------===*\
22bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|*                                                                            *|
32bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|*                     The LLVM Compiler Infrastructure                       *|
42bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|*                                                                            *|
52bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* This file is distributed under the University of Illinois Open Source      *|
62bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* License. See LICENSE.TXT for details.                                      *|
72bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|*                                                                            *|
82bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|*===----------------------------------------------------------------------===*|
92bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|*                                                                            *|
102bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|* This file implements the --targets command in llvm-c-test.                 *|
112bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg|*                                                                            *|
122bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg\*===----------------------------------------------------------------------===*/
132bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg
142bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg#include "llvm-c/TargetMachine.h"
152bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg#include <stdio.h>
162bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg
172bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborgint targets_list(void) {
1890fd79a222652126ee7d85f3afb2cd85aa51b2f9NAKAMURA Takumi  LLVMTargetRef t;
192bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg  LLVMInitializeAllTargetInfos();
202bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg  LLVMInitializeAllTargets();
212bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg
2290fd79a222652126ee7d85f3afb2cd85aa51b2f9NAKAMURA Takumi  for (t = LLVMGetFirstTarget(); t; t = LLVMGetNextTarget(t)) {
232bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg    printf("%s", LLVMGetTargetName(t));
242bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg    if (LLVMTargetHasJIT(t))
252bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg      printf(" (+jit)");
262bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg    printf("\n - %s\n", LLVMGetTargetDescription(t));
272bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg  }
282bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg
292bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg  return 0;
302bef1a6b25d938210547cd0f5ba4a08abdad2583Anders Waldenborg}
31