[llvm-commits] [llvm] r48982 - in /llvm/trunk: bindings/ocaml/analysis/analysis_ocaml.c bindings/ocaml/analysis/llvm_analysis.ml bindings/ocaml/analysis/llvm_analysis.mli include/llvm-c/Analysis.h lib/Analysis/Analysis.cpp

Tanya Lattner lattner at apple.com
Mon Mar 31 11:04:19 PDT 2008


I don't think /* comment */ works for doxygen style comments. It  
should be /** comment */ and it should be for each function.

-Tanya

On Mar 31, 2008, at 9:22 AM, Erick Tryzelaar wrote:

> Author: erickt
> Date: Mon Mar 31 11:22:09 2008
> New Revision: 48982
>
> URL: http://llvm.org/viewvc/llvm-project?rev=48982&view=rev
> Log:
> Expose Function::viewCFG and Function::viewCFGOnly to bindings.
>
> Modified:
>     llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c
>     llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml
>     llvm/trunk/bindings/ocaml/analysis/llvm_analysis.mli
>     llvm/trunk/include/llvm-c/Analysis.h
>     llvm/trunk/lib/Analysis/Analysis.cpp
>
> Modified: llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/ 
> analysis/analysis_ocaml.c?rev=48982&r1=48981&r2=48982&view=diff
>
> ====================================================================== 
> ========
> --- llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c (original)
> +++ llvm/trunk/bindings/ocaml/analysis/analysis_ocaml.c Mon Mar 31  
> 11:22:09 2008
> @@ -58,3 +58,15 @@
>    LLVMVerifyFunction(Fn, LLVMAbortProcessAction);
>    return Val_unit;
>  }
> +
> +/* Llvm.llvalue -> unit */
> +CAMLprim value llvm_view_function_cfg(LLVMValueRef Fn) {
> +  LLVMViewFunctionCFG(Fn);
> +  return Val_unit;
> +}
> +
> +/* Llvm.llvalue -> unit */
> +CAMLprim value llvm_view_function_cfg_only(LLVMValueRef Fn) {
> +  LLVMViewFunctionCFGOnly(Fn);
> +  return Val_unit;
> +}
>
> Modified: llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/ 
> analysis/llvm_analysis.ml?rev=48982&r1=48981&r2=48982&view=diff
>
> ====================================================================== 
> ========
> --- llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml (original)
> +++ llvm/trunk/bindings/ocaml/analysis/llvm_analysis.ml Mon Mar 31  
> 11:22:09 2008
> @@ -17,3 +17,6 @@
>
>  external assert_valid_function : Llvm.llvalue -> unit
>                                 = "llvm_assert_valid_function"
> +external view_function_cfg : Llvm.llvalue -> unit =  
> "llvm_view_function_cfg"
> +external view_function_cfg_only : Llvm.llvalue -> unit
> +                                = "llvm_view_function_cfg_only"
>
> Modified: llvm/trunk/bindings/ocaml/analysis/llvm_analysis.mli
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/ 
> analysis/llvm_analysis.mli?rev=48982&r1=48981&r2=48982&view=diff
>
> ====================================================================== 
> ========
> --- llvm/trunk/bindings/ocaml/analysis/llvm_analysis.mli (original)
> +++ llvm/trunk/bindings/ocaml/analysis/llvm_analysis.mli Mon Mar 31  
> 11:22:09 2008
> @@ -33,3 +33,14 @@
>      [llvm::verifyFunction]. *)
>  external assert_valid_function : Llvm.llvalue -> unit
>                                 = "llvm_assert_valid_function"
> +
> +(** [view_function_cfg f] opens up a ghostscript window displaying  
> the CFG of
> +    the current function with the code for each basic block inside.
> +    See [llvm::Function::viewCFG]. *)
> +external view_function_cfg : Llvm.llvalue -> unit =  
> "llvm_view_function_cfg"
> +
> +(** [view_function_cfg_only f] works just like  
> [view_function_cfg], but does not
> +    include the contents of basic blocks into the nodes.
> +    See [llvm::Function::viewCFGOnly]. *)
> +external view_function_cfg_only : Llvm.llvalue -> unit
> +                                = "llvm_view_function_cfg_only"
>
> Modified: llvm/trunk/include/llvm-c/Analysis.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/ 
> Analysis.h?rev=48982&r1=48981&r2=48982&view=diff
>
> ====================================================================== 
> ========
> --- llvm/trunk/include/llvm-c/Analysis.h (original)
> +++ llvm/trunk/include/llvm-c/Analysis.h Mon Mar 31 11:22:09 2008
> @@ -43,6 +43,10 @@
>     for debugging. */
>  int LLVMVerifyFunction(LLVMValueRef Fn, LLVMVerifierFailureAction  
> Action);
>
> +/* Open up a ghostview window that displays the CFG of the current  
> function.
> +   Useful for debugging. */
> +void LLVMViewFunctionCFG(LLVMValueRef Fn);
> +void LLVMViewFunctionCFGOnly(LLVMValueRef Fn);
>
>  #ifdef __cplusplus
>  }
>
> Modified: llvm/trunk/lib/Analysis/Analysis.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ 
> Analysis.cpp?rev=48982&r1=48981&r2=48982&view=diff
>
> ====================================================================== 
> ========
> --- llvm/trunk/lib/Analysis/Analysis.cpp (original)
> +++ llvm/trunk/lib/Analysis/Analysis.cpp Mon Mar 31 11:22:09 2008
> @@ -33,3 +33,12 @@
>                          static_cast<VerifierFailureAction>(Action));
>  }
>
> +void LLVMViewFunctionCFG(LLVMValueRef Fn) {
> +  Function *F = unwrap<Function>(Fn);
> +  F->viewCFG();
> +}
> +
> +void LLVMViewFunctionCFGOnly(LLVMValueRef Fn) {
> +  Function *F = unwrap<Function>(Fn);
> +  F->viewCFGOnly();
> +}
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list