[PATCH] IR: Make the va_list intrinsics overloaded.

Charles Davis cdavis5x at gmail.com
Sat Sep 21 11:41:28 PDT 2013


Hi eli.friedman,

This change makes the va_list intrinsics into overloaded
intrinsics that will accept any kind of pointer; after this change, it 
will no longer be necessary to `bitcast` an incoming pointer to a 
`va_list` to `i8*`.

It also extends the overloaded intrinsic naming code so that it will 
accept pointers to pointers, arrays, and structs, so that the new 
overloaded `va_list` intrinsics can use these types (as almost all 
targets do).

This change will be used later to support Win64 ABI `va_lists' being 
used outside of a Win64 ABI function.

http://llvm-reviews.chandlerc.com/D1737

Files:
  include/llvm/IR/Intrinsics.td
  lib/IR/Function.cpp
  test/CodeGen/AArch64/variadic.ll
  test/CodeGen/ARM/2009-10-30.ll
  test/CodeGen/ARM/2012-10-04-AAPCS-byval-align8.ll
  test/CodeGen/ARM/va_arg.ll
  test/CodeGen/MSP430/vararg.ll
  test/CodeGen/Mips/o32_cc_vararg.ll
  test/CodeGen/PowerPC/2005-11-30-vastart-crash.ll
  test/CodeGen/PowerPC/ppc32-vacopy.ll
  test/CodeGen/PowerPC/ppc64-vaarg-int.ll
  test/CodeGen/PowerPC/vec_misaligned.ll
  test/CodeGen/SPARC/varargs.ll
  test/CodeGen/Thumb/vargs.ll
  test/CodeGen/Thumb2/2009-08-21-PostRAKill4.ll
  test/CodeGen/X86/2008-11-03-F80VAARG.ll
  test/CodeGen/X86/loop-strength-reduce8.ll
  test/CodeGen/X86/nosse-varargs.ll
  test/CodeGen/X86/soft-fp.ll
  test/CodeGen/X86/stdarg.ll
  test/CodeGen/X86/win64_vararg.ll
  test/CodeGen/XCore/varargs.ll
  test/Feature/varargs.ll
  test/Feature/varargs_new.ll
  test/Instrumentation/MemorySanitizer/X86/vararg.ll
  test/Instrumentation/MemorySanitizer/msan_basic.ll
  test/Other/lint.ll
  test/Transforms/DeadArgElim/2008-01-16-VarargsParamAttrs.ll
  test/Transforms/DeadArgElim/variadic_safety.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D1737.1.patch
Type: text/x-patch
Size: 36828 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130921/dd47d378/attachment.bin>


More information about the llvm-commits mailing list