search for: csrs

Displaying 20 results from an estimated 42 matches for "csrs".

Did you mean: csr0
2017 Oct 27
2
Less aggressive on the first allocation of CSR if detecting an early exit
When compiling C code below for AArach64, I saw that shrink-wrapping didn't happen due to the very early uses of CSRs in the entry block. So CSR spills/reloads are executed even when the early exit block is taken. int getI(int i); int foo(int *P, int i) { if (i>0) return P[i]; i = getI(i); return P[i]; } It's not that hard to find such cases where RegAllocGreedy aggressivel...
2017 Oct 30
2
Less aggressive on the first allocation of CSR if detecting an early exit
On 2017-10-27 19:50, Hal Finkel wrote: > On 10/27/2017 03:32 PM, Jun Lim via llvm-dev wrote: > >> When compiling C code below for AArach64, I saw that shrink-wrapping >> didn't happen due to the very early uses of CSRs in the entry block. >> So CSR spills/reloads are executed even when the early exit block is >> taken. >> >> int getI(int i); >> >> int foo(int *P, int i) { >> >> if (i>0) >> >> return P[i]; >> >> i = getI(i); >>...
2013 Aug 01
0
[LLVMdev] Fwd: can i avoid saving CSRs for functions with noreturn
Hi (Adding the list back in). On 1 August 2013 08:44, Liu Xin <navy.xliu at gmail.com> wrote: > i know where to calculate CSRs. the additional stack space is calculated in > PEI::calculateCalleeSavedRegisters. the real instructions are inserted in > insertCSRSpillsAndRestores. > my point is why llvm code honor 'naked' but does not 'noreturn' for CSR. And to me it sounds like a good point, but it s...
2013 Aug 01
2
[LLVMdev] can i avoid saving CSRs for functions with noreturn
...generic ? diff --git a/lib/CodeGen/PrologEpilogInserter.cpp b/lib/CodeGen/PrologEpilogInserter.cpp index c791ffb..f19b47a 100644 --- a/lib/CodeGen/PrologEpilogInserter.cpp +++ b/lib/CodeGen/PrologEpilogInserter.cpp @@ -96,7 +96,7 @@ bool PEI::runOnMachineFunction(MachineFunction &Fn) { placeCSRSpillsAndRestores(Fn); // Add the code to save and restore the callee saved registers - if (!F->hasFnAttr(Attribute::Naked)) + if (!F->hasFnAttr(Attribute::Naked) && !F->hasFnAttr(Attribute::NoReturn)) insertCSRSpillsAndRestores(Fn); // Allow the target machine to make...
2017 Oct 31
2
Less aggressive on the first allocation of CSR if detecting an early exit
...codeaurora.org wrote: >> On 2017-10-27 19:50, Hal Finkel wrote: >>> On 10/27/2017 03:32 PM, Jun Lim via llvm-dev wrote: >>> >>>> When compiling C code below for AArach64, I saw that shrink-wrapping >>>> didn't happen due to the very early uses of CSRs in the entry block. >>>> So CSR spills/reloads are executed even when the early exit block is >>>> taken. >>>> >>>> int getI(int i); >>>> >>>> int foo(int *P, int i) { >>>> >>>> if (i>0) >>&g...
2017 Nov 10
2
Less aggressive on the first allocation of CSR if detecting an early exit
..., but there may be > [obvious] counter-examples I haven't thought of. > Thanks Nemanja for sharing your idea. I think this might cover the case I was targeting, and we may not need to be limited only in the entry block. However, I bit worry if this cause RegAllc to slow in allocating CSRs. What if we have a call-site in the early exit path and no call-site in all other blocks. Then, conservative allocation of CSRs might not be a good choice if the reg pressure is high in the all other blocks. As our first step, would it make sense to limit this only when we detect an early ex...
2017 Nov 16
2
Less aggressive on the first allocation of CSR if detecting an early exit
...cost directly comparable with the split cost? Or, it should be multiplied with the entry frequency to be comparable with the split cost, considering that the CSRCost is the cost of spilling CSR in the entry? > By doing this, I would expect we mechanically get the desired behavior > that CSRs get used for live-ranges that go through calls (otherwise we > would have spilled). > > My 2c. > > Cheers, > -Quentin > >> On Nov 10, 2017, at 12:34 PM, junbuml at codeaurora.org wrote: >> On 2017-11-10 07:47, Nemanja Ivanovic wrote: >> >>> One th...
2017 Nov 17
2
Less aggressive on the first allocation of CSR if detecting an early exit
...pre-split are okay to trade against 1 csr spill at the entry, then shouldn't we multiply FreqOfEntry with the 20 (number of tradable copies)? Please me know if I miss something here? > >> By doing this, I would expect we mechanically get the desired >> behavior >> that CSRs get used for live-ranges that go through calls (otherwise >> we >> would have spilled). >> My 2c. >> Cheers, >> -Quentin >> On Nov 10, 2017, at 12:34 PM, junbuml at codeaurora.org wrote: >> On 2017-11-10 07:47, Nemanja Ivanovic wrote: >> One thing I t...
2017 Oct 03
5
General question about enabling partial inlining
Hi Graham, Thanks for sharing this. Are you planning on enabling the pass only on PGO? Even in non-PGO, I noticed some performance gains when we are aggressive in partially inlining the early return part, especially when the callee spill CSRs in the entry block. At a high level, I have two questions: 1. What is the main obstacle that prevent the pass from being enabled by default? 2. Would it make sense to give some bonus in the cost model when we detect the possibility of spilling CSRs in the entry block? Thanks, Jun From: Gr...
2017 Sep 13
2
General question about enabling partial inlining
Hi, I noticed some performance gains in some spec benchmarks without significant code size bloat when aggressively performing partial inlining, especially when the original callee spill CSRs in the entry block. I guess the partial inlining is not enabled mainly due to the code size. Is there any other issue which prevent the pass from being enabled? Do we have any plan or any on-going works to enable partial inlining ? Thanks, Jun -- Qualcomm Datacenter Technologies, Inc. as an a...
2011 Jan 26
2
applying a set of rules to each row
...e sample data set below. The rule sets are the guidelines for determining an individual's date for retirement eligibility. The rules are found in this document, http://www.opm.gov/feddata/RetirementPaperFinal_v4.pdf. I am only interested in the top two categories for retirement eligibility, the CSRS and FERS plans. The data set has four variables Date of Birth (DOB), service computation date (srvCompDT), retirement plan (retirePlan), and the age at which the employee entered federal service (ageFedStart). The service computation date is used to compute the date eligible for retirement. The r...
2008 Jun 24
2
Suggestions for a plug and play CA certificate manager?
...se issuing CAs would then sign certificate requests for end-use certificates for hosts, email accounts, document provenance, objects, etc. | -- root_CA | | -- issuer_hosts_a_CA | | -- certs | | | -- cert_issued_index | | ` -- cert_revoked_list | | -- csrs | ` -- private | ` -- issuer_hosts_a_CA+key.pem | | -- issuer_services_a_CA | | -- certs | | | -- cert_issued_index | | ` -- cert_revoked_list | | -- csrs | ` -- private | ` -- issuer_services_a_CA+key.pem...
2014 May 27
3
[LLVMdev] Question about callee saved registers in x86
...subtracting the offset reported by MFI->getObjectOffset from the minimum offset for any CSR (this is done by the "Offset = MaxOffset - Offset + saveAreaOffset;" line). Is there a reason why llvm doesn't keep around the offsets in the right order from very beginning, by pushing the CSRs in increasing order of FrameIdxs? [1]: in fact, the way X86FrameLowering's spillCalleeSavedRegisters and PEI's calculateCalleeSavedRegisters are set up, I don't see a reason why the FrameIdxs and the generated push instructions have any relation at all. It seems that the code relies o...
2015 Sep 01
6
Register spilling in caller saved backend
Hey, I'm playing around with a backend with no callee saved registers and noticed more spilling than seems needed. I tried digging into the spilling code but with limited success. I also tried removing all the callee saved registers in the X86 backend and saw the same effect (basically making CSRs equal to CSR_NoRegs). So I seem to be misunderstanding something or missing something simple, and thought I'd ask. Consider this program as an example: volatile int x; int __attribute__((noinline)) foo() { return x; } int main() { for (int i = 0; i < 10; ++i) { foo(); } } The re...
2007 Apr 30
3
Best Practice: how to organize puppetmaster directories?
...r obsolete manifests ] |-- fileserver.conf |-- manifests | |-- classes | | `-- [ all of the manifests I''m using in production ] | |-- nodes | | `-- [ each of my servers, by name ] | `-- site.pp |-- puppetd.conf `-- ssl `-- [ all of puppetmaster''s keys, certs, and csrs ] Files uploaded via fileserver live under /var/lib/puppet. Generic files live under dist, full packages live under depot, and host-specific stuff lives under private/[hostname]: /var/lib/puppet |-- depot | `-- tar | `-- BBCLT-bbc1.9g-btf.tar |-- dist | `-- apps | |-- diagnostics...
2009 Mar 01
2
[LLVMdev] Shrink Wrapping - RFC and initial implementation
...nfo is handled, so I held off trying to make the shrink wrapping work with the current impl. > > The main features are: > > - Placing callee saved register (CSR) spills and restores in the > > CFG to tightly surround uses > > so that execution paths that do not use CSRs do not pay the > > spill/restore penalty. > > > > - Avoiding placment of spills/restores in loops: if a CSR is used > > inside a loop(nest), the spills > > are placed in the loop preheader, and restores are placed in > > the loop exit nodes (the > >...
2014 May 30
2
[LLVMdev] Question about callee saved registers in x86
...gt;> MFI->getObjectOffset from the minimum offset for any CSR (this is done >> by the "Offset = MaxOffset - Offset + saveAreaOffset;" line). Is >> there a reason why llvm doesn't keep around the offsets in the right >> order from very beginning, by pushing the CSRs in increasing order of >> FrameIdxs? > > Now, that you mention it, I remember being down to the same rabbit hole. > With certain calling conventions (coldcc, I think it was which can for > sure expose this for x86), it is possible to generate invalid CFI > directives for the re...
2009 Mar 01
0
[LLVMdev] Shrink Wrapping - RFC and initial implementation
...What part of this is target dependent? Is this due to emitPrologue / emitEpilogue being target specific? > > The main features are: > - Placing callee saved register (CSR) spills and restores in the > CFG to tightly surround uses > so that execution paths that do not use CSRs do not pay the > spill/restore penalty. > > - Avoiding placment of spills/restores in loops: if a CSR is used > inside a loop(nest), the spills > are placed in the loop preheader, and restores are placed in > the loop exit nodes (the > successors of the loop _...
2009 Feb 26
4
[LLVMdev] Shrink Wrapping - RFC and initial implementation
...insertion under the switch --shrink-wrap. It is limited to X86 presently since that is the only target I have access to at the moment. The main features are: - Placing callee saved register (CSR) spills and restores in the CFG to tightly surround uses so that execution paths that do not use CSRs do not pay the spill/restore penalty. - Avoiding placment of spills/restores in loops: if a CSR is used inside a loop(nest), the spills are placed in the loop preheader, and restores are placed in the loop exit nodes (the successors of the loop _exiting_ nodes). - Covering paths wit...
2007 Nov 01
1
New Client Problems
...Certificates were not trusted: hostname was not match with the server certificate info: //workstation/puppet-config/remotefile[/etc/sysconfig/puppet]/File[/etc/sysconfig/puppet]/source: No specified sources exist I have done the following: * Verified pems using openssl * Deleted all ssl certs and csrs on client and server and retried * Confirmed clocks in sync * Tried adding certname = puppet.myclient.com in puppetmasterd.conf and restarting * Built new rpm of 0.22.3 for fc8 and tried that * Combed the puppet and facter source for this exception to work out what is causing it - I only found the...