Add new edge properties: parameter_equals, element_in_list, and.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50730 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/llvmc2/Common.td b/tools/llvmc2/Common.td
index 30905a4..5e25dcf 100644
--- a/tools/llvmc2/Common.td
+++ b/tools/llvmc2/Common.td
@@ -50,7 +50,7 @@
 def switch_on;
 def parameter_equals;
 def element_in_list;
-def or;
+def and;
 
 // Map from suffixes to language names
 
diff --git a/tools/llvmc2/Example.td b/tools/llvmc2/Example.td
index 79376ef..4fa4978 100644
--- a/tools/llvmc2/Example.td
+++ b/tools/llvmc2/Example.td
@@ -26,10 +26,11 @@
     Edge<llvm_gcc_cpp, llc>,
     Edge<llvm_as, llc>,
 
-    OptionalEdge<llvm_gcc_c, opt, [(switch_on "opt")]>,
-    OptionalEdge<llvm_gcc_cpp, opt, [(switch_on "opt")]>,
-    OptionalEdge<llvm_as, opt, [(switch_on "opt")]>,
-    OptionalEdge<opt, llc, [(switch_on "opt")]>,
+    OptionalEdge<llvm_gcc_c, opt, [(switch_on "S")]>,
+    OptionalEdge<llvm_gcc_cpp, opt, [(switch_on "S")]>,
+    OptionalEdge<llvm_as, opt, [(switch_on "S")]>,
+    OptionalEdge<opt, llc, [(and (switch_on "S"), (parameter_equals "O", "V")),
+                            (element_in_list  "P", "E")]>,
 
     Edge<llc, llvm_gcc_assembler>,
     Edge<llvm_gcc_assembler, llvm_gcc_linker>
diff --git a/tools/llvmc2/Tools.td b/tools/llvmc2/Tools.td
index 67104ec..f4c73cb 100644
--- a/tools/llvmc2/Tools.td
+++ b/tools/llvmc2/Tools.td
@@ -38,7 +38,9 @@
 def opt : Tool<
 [(in_language "llvm-bitcode"),
  (out_language "llvm-bitcode"),
- (switch_option "opt", (help "Enable opt")),
+ (switch_option "S", (help "Test switch")),
+ (parameter_option "O", (help "Test Parameter")),
+ (prefix_list_option "P", (help "Test Parameter List")),
  (output_suffix "bc"),
  (cmd_line "opt $INFILE -o $OUTFILE")
 ]>;