Skip to content
  • Anton Korobeynikov's avatar
    Propagate changes from my local tree. This patch includes: · 037c867b
    Anton Korobeynikov authored
    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.
    llvm-svn: 33597
    037c867b
Loading