OSDN Git Service

Propagate changes from my local tree. This patch includes:
authorAnton Korobeynikov <asl@math.spbu.ru>
Sun, 28 Jan 2007 13:31:35 +0000 (13:31 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Sun, 28 Jan 2007 13:31:35 +0000 (13:31 +0000)
commitb10308e440c80dd6ffb4b478f741ff7e5f30cb48
tree90dcc14295ce38dc9d4bc3626e48cd5311770810
parentf0876c7cb7ab68bf81e71537ae04b831df01e1ca
Propagate changes from my local tree. This patch includes:
1. New parameter attribute called 'inreg'. It has meaning "place this
parameter in registers, if possible". This is some generalization of
gcc's regparm(n) attribute. It's currently used only in X86-32 backend.
2. Completely rewritten CC handling/lowering code inside X86 backend.
Merged stdcall + c CCs and fastcall + fast CC.
3. Dropped CSRET CC. We cannot add struct return variant for each
target-specific CC (e.g. stdcall + csretcc and so on).
4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in
on first attribute has meaning 'This is hidden pointer to structure
return. Handle it gently'.
5. Fixed small bug in llvm-extract + add new feature to
FunctionExtraction pass, which relinks all internal-linkaged callees
from deleted function to external linkage. This will allow further
linking everything together.

NOTEs: 1. Documentation will be updated soon.
       2. llvm-upgrade should be improved to translate csret => sret.
          Before this, there will be some unexpected test fails.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33597 91177308-0d34-0410-b5e6-96231b3b80d8
24 files changed:
include/llvm/CallingConv.h
include/llvm/CodeGen/SelectionDAGNodes.h
include/llvm/DerivedTypes.h
include/llvm/Target/TargetLowering.h
include/llvm/Transforms/IPO.h
lib/AsmParser/Lexer.l
lib/AsmParser/Lexer.l.cvs
lib/AsmParser/llvmAsmParser.y
lib/AsmParser/llvmAsmParser.y.cvs
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/CBackend/CBackend.cpp
lib/Target/PowerPC/PPCISelLowering.cpp
lib/Target/X86/X86AsmPrinter.cpp
lib/Target/X86/X86ISelLowering.cpp
lib/Target/X86/X86ISelLowering.h
lib/Target/X86/X86Subtarget.cpp
lib/Transforms/IPO/DeadArgumentElimination.cpp
lib/Transforms/IPO/ExtractFunction.cpp
lib/VMCore/AsmWriter.cpp
lib/VMCore/Type.cpp
lib/VMCore/Verifier.cpp
tools/llvm-extract/llvm-extract.cpp