From 6169a78f4662415469692f9d943b1779932e6210 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 30 Sep 2005 06:42:24 +0000 Subject: [PATCH] these registers don't belong to any register classes, so don't mark them as callee save. They can never be generated by the compiler. llvm-svn: 23551 --- llvm/lib/Target/IA64/IA64.td | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/llvm/lib/Target/IA64/IA64.td b/llvm/lib/Target/IA64/IA64.td index 1370e37b329b..50da45e756f6 100644 --- a/llvm/lib/Target/IA64/IA64.td +++ b/llvm/lib/Target/IA64/IA64.td @@ -38,7 +38,10 @@ def IA64 : Target { //'preserved' GRs: - [r4, r5, r6, r7, + [ + // We never generate references to these regs, so we don't need to declare + // that they are saved. In fact, we could just remove them entirely. + //r4, r5, r6, r7, //'special' GRs: @@ -67,19 +70,26 @@ def IA64 : Target { */ //'preserved' FP regs: - F2,F3,F4,F5, - F16,F17,F18,F19,F20,F21,F22,F23, - F24,F25,F26,F27,F28,F29,F30,F31, + /* We never generate references to these regs, so we don't need to declare + * that they are saved. In fact, we could just remove them entirely. + * F2,F3,F4, F5, + * F16,F17,F18,F19,F20,F21,F22,F23, + * F24,F25,F26,F27,F28,F29,F30,F31, + */ //'preserved' predicate regs: - p1, p2, p3, p4, p5, - p16, p17, p18, p19, p20, p21, p22, p23, - p24, p25, p26, p27, p28, p29, p30, p31, - p32, p33, p34, p35, p36, p37, p38, p39, - p40, p41, p42, p43, p44, p45, p46, p47, - p48, p49, p50, p51, p52, p53, p54, p55, - p56, p57, p58, p59, p60, p61, p62, p63]; + /* We never generate references to these regs, so we don't need to declare + that they are saved. In fact, we could just remove them entirely. + p1, p2, p3, p4, p5, + p16, p17, p18, p19, p20, p21, p22, p23, + p24, p25, p26, p27, p28, p29, p30, p31, + p32, p33, p34, p35, p36, p37, p38, p39, + p40, p41, p42, p43, p44, p45, p46, p47, + p48, p49, p50, p51, p52, p53, p54, p55, + p56, p57, p58, p59, p60, p61, p62, p63 + */ + ]; // We don't go anywhere near the LP32 variant of IA64 as // sometimes seen in (for example) HP-UX