Re: [llvm-commits] [llvm-gcc-4.2] r46164 - in /llvm-gcc-4.2/trunk/gcc/config/i386: llvm-i386-target.h llvm-i386.cpp
> i32 / i64 all integer structs are not passed byval. What about integer arrays? Best wishes, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
Re: [llvm-commits] [llvm-gcc-4.2] r46191 - in /llvm-gcc-4.2/trunk/gcc: config/i386/i386-protos.h config/i386/i386.c config/i386/i386.h config/i386/llvm-i386-target.h config/i386/llvm-i386.cpp llvm-abi
Hi Evan, > +#ifndef LLVM_SHOULD_PASS_AGGREGATE_USING_BYVAL_ATTR(X) the (X) should not be on the end of an ifdef/ifndef line. Otherwise you get compiler warnings. > +#ifndef LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS(T, E) Likewise. Best wishes, Duncan. ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r46192 - /llvm/trunk/lib/Target/X86/X86CallingConv.td
Author: baldrick Date: Sat Jan 19 10:42:10 2008 New Revision: 46192 URL: http://llvm.org/viewvc/llvm-project?rev=46192&view=rev Log: Need to handle any 'nest' parameter before integer parameters, since otherwise it won't be passed in the right register. With this change trampolines work on x86-64 (thanks to Luke Guest for providing access to an x86-64 box). Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td Modified: llvm/trunk/lib/Target/X86/X86CallingConv.td URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86CallingConv.td?rev=46192&r1=46191&r2=46192&view=diff == --- llvm/trunk/lib/Target/X86/X86CallingConv.td (original) +++ llvm/trunk/lib/Target/X86/X86CallingConv.td Sat Jan 19 10:42:10 2008 @@ -101,7 +101,10 @@ // Promote i8/i16 arguments to i32. CCIfType<[i8, i16], CCPromoteToType>, - + + // The 'nest' parameter, if any, is passed in R10. + CCIfNest>, + // The first 6 integer arguments are passed in integer registers. CCIfType<[i32], CCAssignToReg<[EDI, ESI, EDX, ECX, R8D, R9D]>>, CCIfType<[i64], CCAssignToReg<[RDI, RSI, RDX, RCX, R8 , R9 ]>>, @@ -114,9 +117,6 @@ CCIfType<[v8i8, v4i16, v2i32, v1i64], CCAssignToReg<[RDI, RSI, RDX, RCX, R8 , R9 ]>>, - // The 'nest' parameter, if any, is passed in R10. - CCIfNest>, - // Integer/FP values get stored in stack slots that are 8 bytes in size and // 8-byte aligned if there are no more registers to hold them. CCIfType<[i32, i64, f32, f64], CCAssignToStack<8, 8>>, @@ -140,7 +140,10 @@ // Promote i8/i16 arguments to i32. CCIfType<[i8, i16], CCPromoteToType>, - + + // The 'nest' parameter, if any, is passed in R10. + CCIfNest>, + // The first 6 integer arguments are passed in integer registers. CCIfType<[i32], CCAssignToReg<[EDI, ESI, EDX, ECX, R8D]>>, CCIfType<[i64], CCAssignToReg<[RDI, RSI, RDX, RCX, R8]>>, @@ -153,9 +156,6 @@ CCIfType<[v8i8, v4i16, v2i32, v1i64], CCAssignToReg<[RDI, RSI, RDX, RCX, R8]>>, - // The 'nest' parameter, if any, is passed in R10. - CCIfNest>, - // Integer/FP values get stored in stack slots that are 8 bytes in size and // 8-byte aligned if there are no more registers to hold them. CCIfType<[i32, i64, f32, f64], CCAssignToStack<8, 8>>, ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r46193 - /llvm/trunk/include/llvm/ADT/APInt.h
Author: kremenek Date: Sat Jan 19 11:21:43 2008 New Revision: 46193 URL: http://llvm.org/viewvc/llvm-project?rev=46193&view=rev Log: Changed argument name for 'Profile' method to potentially fix a name conflict reported in pr1929 (http://llvm.org/PR1929). Modified: llvm/trunk/include/llvm/ADT/APInt.h Modified: llvm/trunk/include/llvm/ADT/APInt.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/APInt.h?rev=46193&r1=46192&r2=46193&view=diff == --- llvm/trunk/include/llvm/ADT/APInt.h (original) +++ llvm/trunk/include/llvm/ADT/APInt.h Sat Jan 19 11:21:43 2008 @@ -213,7 +213,7 @@ /// Profile - Used to insert APInt objects, or objects that contain APInt /// objects, into FoldingSets. - void Profile(FoldingSetNodeID& ID) const; + void Profile(FoldingSetNodeID& id) const; /// @brief Used by the Bitcode serializer to emit APInts to Bitcode. void Emit(Serializer& S) const; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm-gcc-4.0] r46194 - /llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp
Author: asl Date: Sat Jan 19 18:22:06 2008 New Revision: 46194 URL: http://llvm.org/viewvc/llvm-project?rev=46194&view=rev Log: Propagate r40011 from 4.2 to 4.0. This also fixes PR1852 Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Modified: llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp?rev=46194&r1=46193&r2=46194&view=diff == --- llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp (original) +++ llvm-gcc-4.0/trunk/gcc/llvm-convert.cpp Sat Jan 19 18:22:06 2008 @@ -4991,6 +4991,7 @@ } bool TreeToLLVM::EmitBuiltinEHReturnDataRegno(tree exp, Value *&Result) { +#ifdef EH_RETURN_DATA_REGNO tree arglist = TREE_OPERAND(exp, 1); if (!validate_arglist(arglist, INTEGER_TYPE, VOID_TYPE)) @@ -5012,6 +5013,7 @@ iwhich = DWARF_FRAME_REGNUM (iwhich); Result = ConstantInt::get(ConvertType(TREE_TYPE(exp)), iwhich); +#endif return true; } @@ -5041,6 +5043,7 @@ } bool TreeToLLVM::EmitBuiltinInitDwarfRegSizes(tree exp, Value *&Result) { +#ifdef DWARF2_UNWIND_INFO unsigned int i; bool wrote_return_column = false; static bool reg_modes_initialized = false; @@ -5094,6 +5097,8 @@ Builder.CreateStore(Size, Builder.CreateGEP(Addr, Idx, "tmp"), false); #endif +#endif /* DWARF2_UNWIND_INFO */ + // TODO: the RS6000 target needs extra initialization [gcc changeset 122468]. return true; ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
[llvm-commits] [llvm] r46195 - /llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
Author: johannes Date: Sat Jan 19 19:18:38 2008 New Revision: 46195 URL: http://llvm.org/viewvc/llvm-project?rev=46195&view=rev Log: Do not generate a FP_ROUND of f64 to f64. Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Modified: llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp?rev=46195&r1=46194&r2=46195&view=diff == --- llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (original) +++ llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp Sat Jan 19 19:18:38 2008 @@ -3608,10 +3608,11 @@ MVT::ValueType SrcVT = Op.getOperand(0).getValueType(); if (TLI.getConvertAction(SrcVT, DstVT) == TargetLowering::Expand) { if (SrcVT == MVT::ppcf128) { -SDOperand Lo, Hi; -ExpandOp(Node->getOperand(0), Lo, Hi); +SDOperand Lo; +ExpandOp(Node->getOperand(0), Lo, Result); // Round it the rest of the way (e.g. to f32) if needed. -Result = DAG.getNode(ISD::FP_ROUND, DstVT, Hi, Op.getOperand(1)); +if (DstVT!=MVT::f64) + Result = DAG.getNode(ISD::FP_ROUND, DstVT, Result, Op.getOperand(1)); break; } // The only other way we can lower this is to turn it into a STORE, ___ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits