From owner-svn-src-user@FreeBSD.ORG Sun Oct 16 07:29:51 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 35B81106566B; Sun, 16 Oct 2011 07:29:51 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 25D898FC14; Sun, 16 Oct 2011 07:29:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9G7TpmN050807; Sun, 16 Oct 2011 07:29:51 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9G7TooB050805; Sun, 16 Oct 2011 07:29:50 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110160729.p9G7TooB050805@svn.freebsd.org> From: Adrian Chadd Date: Sun, 16 Oct 2011 07:29:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226417 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Oct 2011 07:29:51 -0000 Author: adrian Date: Sun Oct 16 07:29:50 2011 New Revision: 226417 URL: http://svn.freebsd.org/changeset/base/226417 Log: Move the TX taskqueue enqueue to later in the ath_intr() routine. I have this sneaking suspicion that preemption is the reason behind some of these TX hangs. Ie, the taskqueue enqueue caused the taskqueue process (which may be at the same priority as the ath_intr swi) to preempt it. Thus TX could occur before the TXQ status bits were properly set. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Sun Oct 16 07:05:43 2011 (r226416) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Sun Oct 16 07:29:50 2011 (r226417) @@ -1481,7 +1481,6 @@ ath_intr(void *arg) } if (status & HAL_INT_TX) { sc->sc_stats.ast_tx_intr++; - taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask); /* * Grab all the currently set bits in the HAL txq bitmap @@ -1493,6 +1492,7 @@ ath_intr(void *arg) ath_hal_gettxintrtxqs(sc->sc_ah, &txqs); sc->sc_txq_active |= txqs; ATH_UNLOCK(sc); + taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask); } if (status & HAL_INT_BMISS) { sc->sc_stats.ast_bmiss++; From owner-svn-src-user@FreeBSD.ORG Sun Oct 16 11:08:51 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8AC72106566B; Sun, 16 Oct 2011 11:08:51 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7A1008FC12; Sun, 16 Oct 2011 11:08:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9GB8prS059709; Sun, 16 Oct 2011 11:08:51 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9GB8pcj059704; Sun, 16 Oct 2011 11:08:51 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110161108.p9GB8pcj059704@svn.freebsd.org> From: Gabor Kovesdan Date: Sun, 16 Oct 2011 11:08:51 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226432 - in user/gabor/tre-integration/usr.bin/grep: . regex X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Oct 2011 11:08:51 -0000 Author: gabor Date: Sun Oct 16 11:08:51 2011 New Revision: 226432 URL: http://svn.freebsd.org/changeset/base/226432 Log: - Fixup after MFC Deleted: user/gabor/tre-integration/usr.bin/grep/regex/ Modified: user/gabor/tre-integration/usr.bin/grep/Makefile user/gabor/tre-integration/usr.bin/grep/grep.c user/gabor/tre-integration/usr.bin/grep/grep.h user/gabor/tre-integration/usr.bin/grep/util.c Modified: user/gabor/tre-integration/usr.bin/grep/Makefile ============================================================================== --- user/gabor/tre-integration/usr.bin/grep/Makefile Sun Oct 16 10:58:00 2011 (r226431) +++ user/gabor/tre-integration/usr.bin/grep/Makefile Sun Oct 16 11:08:51 2011 (r226432) @@ -15,11 +15,6 @@ bsdgrep.1: grep.1 .endif SRCS= file.c grep.c queue.c util.c -# Extra files ported backported form some regex improvements -.PATH: ${.CURDIR}/regex -SRCS+= fastmatch.c hashtable.c tre-compile.c tre-fastmatch.c xmalloc.c -CFLAGS+=-I${.CURDIR}/regex - .if ${MK_BSD_GREP} == "yes" LINKS= ${BINDIR}/grep ${BINDIR}/egrep \ ${BINDIR}/grep ${BINDIR}/fgrep \ Modified: user/gabor/tre-integration/usr.bin/grep/grep.c ============================================================================== --- user/gabor/tre-integration/usr.bin/grep/grep.c Sun Oct 16 10:58:00 2011 (r226431) +++ user/gabor/tre-integration/usr.bin/grep/grep.c Sun Oct 16 11:08:51 2011 (r226432) @@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include "fastmatch.h" #include "grep.h" #ifndef WITHOUT_NLS @@ -85,7 +84,6 @@ bool matchall; unsigned int patterns, pattern_sz; struct pat *pattern; regex_t *r_pattern; -fastmatch_t *fg_pattern; /* Filename exclusion/inclusion patterns */ unsigned int fpatterns, fpattern_sz; @@ -669,13 +667,10 @@ main(int argc, char *argv[]) } switch (grepbehave) { - cflags |= REG_LITERAL; - break; case GREP_BASIC: break; case GREP_FIXED: - /* XXX: header mess, REG_LITERAL not defined in gnu/regex.h */ - cflags |= 0020; + cflags |= REG_LITERAL; break; case GREP_EXTENDED: cflags |= REG_EXTENDED; @@ -689,15 +684,12 @@ main(int argc, char *argv[]) /* Check if cheating is allowed (always is for fgrep). */ for (i = 0; i < patterns; ++i) { - if (fastncomp(&fg_pattern[i], pattern[i].pat, - pattern[i].len, cflags) != 0) { - /* Fall back to full regex library */ - c = regcomp(&r_pattern[i], pattern[i].pat, cflags); - if (c != 0) { - regerror(c, &r_pattern[i], re_error, - RE_ERROR_BUF); - errx(2, "%s", re_error); - } + /* Fall back to full regex library */ + c = regcomp(&r_pattern[i], pattern[i].pat, cflags); + if (c != 0) { + regerror(c, &r_pattern[i], re_error, + RE_ERROR_BUF); + errx(2, "%s", re_error); } } Modified: user/gabor/tre-integration/usr.bin/grep/grep.h ============================================================================== --- user/gabor/tre-integration/usr.bin/grep/grep.h Sun Oct 16 10:58:00 2011 (r226431) +++ user/gabor/tre-integration/usr.bin/grep/grep.h Sun Oct 16 11:08:51 2011 (r226432) @@ -36,8 +36,6 @@ #include #include -#include "fastmatch.h" - #ifdef WITHOUT_NLS #define getstr(n) errstr[n] #else @@ -125,7 +123,6 @@ extern unsigned int dpatterns, fpatterns extern struct pat *pattern; extern struct epat *dpattern, *fpattern; extern regex_t *er_pattern, *r_pattern; -extern fastmatch_t *fg_pattern; /* For regex errors */ #define RE_ERROR_BUF 512 Modified: user/gabor/tre-integration/usr.bin/grep/util.c ============================================================================== --- user/gabor/tre-integration/usr.bin/grep/util.c Sun Oct 16 10:58:00 2011 (r226431) +++ user/gabor/tre-integration/usr.bin/grep/util.c Sun Oct 16 11:08:51 2011 (r226432) @@ -49,7 +49,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include "fastmatch.h" #include "grep.h" static int linesqueued; @@ -309,17 +308,8 @@ procline(struct str *l, int nottext) } /* Loop to compare with all the patterns */ for (i = 0; i < patterns; i++) { -/* - * XXX: grep_search() is a workaround for speed up and should be - * removed in the future. See fastgrep.c. - */ - if (fg_pattern[i].pattern) - r = grep_search(&fg_pattern[i], - (unsigned char *)l->dat, - l->len, &pmatch); - else - r = regexec(&r_pattern[i], l->dat, 1, - &pmatch, eflags); + r = regexec(&r_pattern[i], l->dat, 1, + &pmatch, eflags); r = (r == 0) ? 0 : REG_NOMATCH; st = (cflags & REG_NOSUB) ? (size_t)l->len @@ -331,24 +321,6 @@ procline(struct str *l, int nottext) if (pmatch.rm_so != 0 || (size_t)pmatch.rm_eo != l->len) r = REG_NOMATCH; - /* Check for whole word match */ - if (r == 0 && (wflag || fg_pattern[i].word)) { - wint_t wbegin, wend; - - wbegin = wend = L' '; - if (pmatch.rm_so != 0 && - sscanf(&l->dat[pmatch.rm_so - 1], - "%lc", &wbegin) != 1) - r = REG_NOMATCH; - else if ((size_t)pmatch.rm_eo != - l->len && - sscanf(&l->dat[pmatch.rm_eo], - "%lc", &wend) != 1) - r = REG_NOMATCH; - else if (iswword(wbegin) || - iswword(wend)) - r = REG_NOMATCH; - } if (r == 0) { if (m == 0) c++; From owner-svn-src-user@FreeBSD.ORG Mon Oct 17 15:25:39 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 11372106566B; Mon, 17 Oct 2011 15:25:39 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 018178FC12; Mon, 17 Oct 2011 15:25:39 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9HFPcKJ029191; Mon, 17 Oct 2011 15:25:38 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9HFPcqB029189; Mon, 17 Oct 2011 15:25:38 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110171525.p9HFPcqB029189@svn.freebsd.org> From: Adrian Chadd Date: Mon, 17 Oct 2011 15:25:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226473 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Oct 2011 15:25:39 -0000 Author: adrian Date: Mon Oct 17 15:25:38 2011 New Revision: 226473 URL: http://svn.freebsd.org/changeset/base/226473 Log: Enforce that ath_stoprecv() is called with the sc lock held. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Mon Oct 17 14:57:42 2011 (r226472) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Mon Oct 17 15:25:38 2011 (r226473) @@ -4961,6 +4961,8 @@ ath_stoprecv(struct ath_softc *sc) ((_pa) - (_sc)->sc_rxdma.dd_desc_paddr))) struct ath_hal *ah = sc->sc_ah; + ATH_LOCK_ASSERT(sc); + ath_hal_stoppcurecv(ah); /* disable PCU */ ath_hal_setrxfilter(ah, 0); /* clear recv filter */ ath_hal_stopdmarecv(ah); /* disable DMA engine */ From owner-svn-src-user@FreeBSD.ORG Mon Oct 17 23:36:30 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 327FD106566B; Mon, 17 Oct 2011 23:36:30 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 095DA8FC0A; Mon, 17 Oct 2011 23:36:30 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9HNaTP4045400; Mon, 17 Oct 2011 23:36:29 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9HNaTnC045398; Mon, 17 Oct 2011 23:36:29 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110172336.p9HNaTnC045398@svn.freebsd.org> From: Adrian Chadd Date: Mon, 17 Oct 2011 23:36:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226484 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Oct 2011 23:36:30 -0000 Author: adrian Date: Mon Oct 17 23:36:29 2011 New Revision: 226484 URL: http://svn.freebsd.org/changeset/base/226484 Log: Now that I've fixed the issues that I was seeing when the PCU was being kicked, remove all the extra code/comments left over. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Mon Oct 17 22:23:27 2011 (r226483) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Mon Oct 17 23:36:29 2011 (r226484) @@ -4139,38 +4139,11 @@ rx_next: * need to be handled, kick the PCU if there's * been an RXEOL condition. */ - /* - * XXX TODO! - * It is very likely that we're unfortunately - * racing with other places where ath_hal_intrset() - * may be called. It may be that we do need to - * add some more locking (eg the pcu lock from ath9k/ - * reference), or introduce some other way to cope - * with this. - */ if (resched && sc->sc_kickpcu) { CTR0(ATH_KTR_ERR, "ath_rx_proc: kickpcu"); device_printf(sc->sc_dev, "%s: kickpcu; handled %d packets\n", __func__, npkts); -#if 0 - /* - * This re-links all of the descriptors together. - * (Is it possible that somehow, some state/issue - * is leaving us with badly linked descriptors?) - * Is it possible that we're receiving another RXEOL - * _during_ this function? - */ - if (ath_startrecv(sc) != 0) { - if_printf(ifp, - "%s: couldn't restart RX after RXEOL; resetting\n", - __func__); - ath_reset(ifp); - sc->sc_kickpcu = 0; - return; - } -#endif - /* XXX rxslink? */ bf = TAILQ_FIRST(&sc->sc_rxbuf); ath_hal_putrxbuf(ah, bf->bf_daddr); @@ -4178,10 +4151,9 @@ rx_next: ath_mode_init(sc); /* set filters, etc. */ ath_hal_startpcurecv(ah); /* re-enable PCU/DMA engine */ - ATH_LOCK(sc); + ATH_LOCK_ASSERT(sc); ath_hal_intrset(ah, sc->sc_imask); sc->sc_kickpcu = 0; - ATH_UNLOCK(sc); } if (resched && (ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) { From owner-svn-src-user@FreeBSD.ORG Tue Oct 18 03:57:44 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9ACD4106566C; Tue, 18 Oct 2011 03:57:44 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 718DE8FC0A; Tue, 18 Oct 2011 03:57:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9I3vik6055086; Tue, 18 Oct 2011 03:57:44 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9I3viQi055084; Tue, 18 Oct 2011 03:57:44 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110180357.p9I3viQi055084@svn.freebsd.org> From: Adrian Chadd Date: Tue, 18 Oct 2011 03:57:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226492 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2011 03:57:44 -0000 Author: adrian Date: Tue Oct 18 03:57:44 2011 New Revision: 226492 URL: http://svn.freebsd.org/changeset/base/226492 Log: Teach ath_tx_processq() to not reschedule more frames. This isn't used just yet - but when TX is being non-delete flushed (ie, when packets are completed but in-progress frames are not deleted), sched should not occur. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 03:32:18 2011 (r226491) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 03:57:44 2011 (r226492) @@ -4505,7 +4505,7 @@ ath_tx_update_ratectrl(struct ath_softc * particular task. */ static int -ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) +ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq, int dosched) { struct ath_hal *ah = sc->sc_ah; struct ath_buf *bf, *last; @@ -4632,9 +4632,11 @@ ath_tx_processq(struct ath_softc *sc, st #endif /* Kick the TXQ scheduler */ - ATH_TXQ_LOCK(txq); - ath_txq_sched(sc, txq); - ATH_TXQ_UNLOCK(txq); + if (dosched) { + ATH_TXQ_LOCK(txq); + ath_txq_sched(sc, txq); + ATH_TXQ_UNLOCK(txq); + } return nacked; } @@ -4657,11 +4659,11 @@ ath_tx_proc_q0(void *arg, int npending) sc->sc_txq_active &= ~txqs; ATH_UNLOCK(sc); - if (TXQACTIVE(txqs, 0) && ath_tx_processq(sc, &sc->sc_txq[0])) + if (TXQACTIVE(txqs, 0) && ath_tx_processq(sc, &sc->sc_txq[0], 1)) /* XXX why is lastrx updated in tx code? */ sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); if (TXQACTIVE(txqs, sc->sc_cabq->axq_qnum)) - ath_tx_processq(sc, sc->sc_cabq); + ath_tx_processq(sc, sc->sc_cabq, 1); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; sc->sc_wd_timer = 0; @@ -4693,15 +4695,15 @@ ath_tx_proc_q0123(void *arg, int npendin */ nacked = 0; if (TXQACTIVE(txqs, 0)) - nacked += ath_tx_processq(sc, &sc->sc_txq[0]); + nacked += ath_tx_processq(sc, &sc->sc_txq[0], 1); if (TXQACTIVE(txqs, 1)) - nacked += ath_tx_processq(sc, &sc->sc_txq[1]); + nacked += ath_tx_processq(sc, &sc->sc_txq[1], 1); if (TXQACTIVE(txqs, 2)) - nacked += ath_tx_processq(sc, &sc->sc_txq[2]); + nacked += ath_tx_processq(sc, &sc->sc_txq[2], 1); if (TXQACTIVE(txqs, 3)) - nacked += ath_tx_processq(sc, &sc->sc_txq[3]); + nacked += ath_tx_processq(sc, &sc->sc_txq[3], 1); if (TXQACTIVE(txqs, sc->sc_cabq->axq_qnum)) - ath_tx_processq(sc, sc->sc_cabq); + ath_tx_processq(sc, sc->sc_cabq, 1); if (nacked) sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); @@ -4736,7 +4738,7 @@ ath_tx_proc(void *arg, int npending) nacked = 0; for (i = 0; i < HAL_NUM_TX_QUEUES; i++) if (ATH_TXQ_SETUP(sc, i) && TXQACTIVE(txqs, i)) - nacked += ath_tx_processq(sc, &sc->sc_txq[i]); + nacked += ath_tx_processq(sc, &sc->sc_txq[i], 1); if (nacked) sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); From owner-svn-src-user@FreeBSD.ORG Tue Oct 18 07:13:08 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 294ED106566B; Tue, 18 Oct 2011 07:13:08 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 0E62A8FC0A; Tue, 18 Oct 2011 07:13:08 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9I7D7xo061075; Tue, 18 Oct 2011 07:13:07 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9I7D7eo061073; Tue, 18 Oct 2011 07:13:07 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110180713.p9I7D7eo061073@svn.freebsd.org> From: Adrian Chadd Date: Tue, 18 Oct 2011 07:13:07 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226493 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2011 07:13:08 -0000 Author: adrian Date: Tue Oct 18 07:13:07 2011 New Revision: 226493 URL: http://svn.freebsd.org/changeset/base/226493 Log: Break out the ath_draintxq() code into two halves - the half that drains the queue, and another half which stops the TX DMA. Call the new function ath_stoptxdma(). It requires the sc lock to be held. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 03:57:44 2011 (r226492) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 07:13:07 2011 (r226493) @@ -182,6 +182,7 @@ static void ath_tx_proc_q0(void *, int); static void ath_tx_proc_q0123(void *, int); static void ath_tx_proc(void *, int); static int ath_chan_set(struct ath_softc *, struct ieee80211_channel *); +static int ath_stoptxdma(struct ath_softc *); static void ath_draintxq(struct ath_softc *, ATH_RESET_TYPE reset_type); static void ath_stoprecv(struct ath_softc *); static int ath_startrecv(struct ath_softc *); @@ -1138,7 +1139,8 @@ ath_vap_delete(struct ieee80211vap *vap) * the vap state by any frames pending on the tx queues. */ ath_hal_intrset(ah, 0); /* disable interrupts */ - ath_draintxq(sc, ATH_RESET_DEFAULT); /* stop hw xmit side */ + ath_stoptxdma(sc); /* stop TX DMA */ + ath_draintxq(sc, ATH_RESET_DEFAULT); /* Drain TX queues */ /* XXX Do all frames from all vaps/nodes need draining here? */ ath_stoprecv(sc); /* stop recv side */ ath_rx_proc(sc, 0); @@ -1164,7 +1166,11 @@ ath_vap_delete(struct ieee80211vap *vap) * call!) */ - ath_draintxq(sc, ATH_RESET_DEFAULT); + if (ifp->if_drv_flags & IFF_DRV_RUNNING) { + ATH_LOCK(sc); + ath_draintxq(sc, ATH_RESET_DEFAULT); + ATH_UNLOCK(sc); + } ATH_LOCK(sc); /* @@ -1795,7 +1801,8 @@ ath_stop_locked(struct ifnet *ifp) } ath_hal_intrset(ah, 0); } - ath_draintxq(sc, ATH_RESET_DEFAULT); + ath_stoptxdma(sc); /* stop TX dma */ + ath_draintxq(sc, ATH_RESET_DEFAULT); /* drain TX queues */ if (!sc->sc_invalid) { ath_stoprecv(sc); ath_rx_proc(sc, 0); @@ -1848,7 +1855,8 @@ ath_reset_locked(struct ifnet *ifp, ATH_ DPRINTF(sc, ATH_DEBUG_RESET, "%s: called\n", __func__); ath_hal_intrset(ah, 0); /* disable interrupts */ - ath_draintxq(sc, reset_type); /* stop xmit side */ + ath_stoptxdma(sc); /* stop TX side */ + ath_draintxq(sc, reset_type); /* drain TXQs if needed */ /* * XXX Don't flush if ATH_RESET_NOLOSS;but we have to first * XXX need to ensure this doesn't race with an outstanding @@ -4883,6 +4891,36 @@ ath_tx_stopdma(struct ath_softc *sc, str } /* + * Stop TX DMA. + * + * The sc lock must be held. + */ +static int +ath_stoptxdma(struct ath_softc *sc) +{ + struct ath_hal *ah = sc->sc_ah; + int i; + + ATH_LOCK_ASSERT(sc); + + /* XXX return value */ + if (!sc->sc_invalid) + return 0; + + /* don't touch the hardware if marked invalid */ + DPRINTF(sc, ATH_DEBUG_RESET, "%s: tx queue [%u] %p, link %p\n", + __func__, sc->sc_bhalq, + (caddr_t)(uintptr_t) ath_hal_gettxbuf(ah, sc->sc_bhalq), + NULL); + (void) ath_hal_stoptxdma(ah, sc->sc_bhalq); + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) + if (ATH_TXQ_SETUP(sc, i)) + ath_tx_stopdma(sc, &sc->sc_txq[i]); + + return 1; +} + +/* * Drain the transmit queues and reclaim resources. */ static void @@ -4892,18 +4930,6 @@ ath_draintxq(struct ath_softc *sc, ATH_R struct ifnet *ifp = sc->sc_ifp; int i; - /* XXX return value */ - if (!sc->sc_invalid) { - /* don't touch the hardware if marked invalid */ - DPRINTF(sc, ATH_DEBUG_RESET, "%s: tx queue [%u] %p, link %p\n", - __func__, sc->sc_bhalq, - (caddr_t)(uintptr_t) ath_hal_gettxbuf(ah, sc->sc_bhalq), - NULL); - (void) ath_hal_stoptxdma(ah, sc->sc_bhalq); - for (i = 0; i < HAL_NUM_TX_QUEUES; i++) - if (ATH_TXQ_SETUP(sc, i)) - ath_tx_stopdma(sc, &sc->sc_txq[i]); - } for (i = 0; i < HAL_NUM_TX_QUEUES; i++) if (ATH_TXQ_SETUP(sc, i)) ath_tx_draintxq(sc, &sc->sc_txq[i]); @@ -5044,6 +5070,7 @@ ath_chan_set(struct ath_softc *sc, struc * the relevant bits of the h/w. */ ath_hal_intrset(ah, 0); /* disable interrupts */ + ath_stoptxdma(sc); /* stop TX side */ ath_draintxq(sc, ATH_RESET_FULL); /* clear pending tx frames */ ath_stoprecv(sc); /* turn off frame recv */ ath_rx_proc(sc, 0); /* handle RX'ed frames */ From owner-svn-src-user@FreeBSD.ORG Tue Oct 18 07:17:44 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 742A61065676; Tue, 18 Oct 2011 07:17:44 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 642B38FC20; Tue, 18 Oct 2011 07:17:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9I7HiD5061248; Tue, 18 Oct 2011 07:17:44 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9I7Hi0g061246; Tue, 18 Oct 2011 07:17:44 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110180717.p9I7Hi0g061246@svn.freebsd.org> From: Adrian Chadd Date: Tue, 18 Oct 2011 07:17:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226494 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2011 07:17:44 -0000 Author: adrian Date: Tue Oct 18 07:17:44 2011 New Revision: 226494 URL: http://svn.freebsd.org/changeset/base/226494 Log: Remove a now uneeded call. This race doesn't occur (now) because of the ath sc lock being held during ath_rx_proc. It _can_ race with the tx completion code and ath_start / ath_xmit_raw calls because currently no sc lock is held during those. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 07:13:07 2011 (r226493) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 07:17:44 2011 (r226494) @@ -1857,11 +1857,6 @@ ath_reset_locked(struct ifnet *ifp, ATH_ ath_hal_intrset(ah, 0); /* disable interrupts */ ath_stoptxdma(sc); /* stop TX side */ ath_draintxq(sc, reset_type); /* drain TXQs if needed */ - /* - * XXX Don't flush if ATH_RESET_NOLOSS;but we have to first - * XXX need to ensure this doesn't race with an outstanding - * XXX taskqueue call. - */ ath_stoprecv(sc); /* stop recv side */ ath_rx_proc(sc, 0); /* process RX'ed frames in the queue */ ath_settkipmic(sc); /* configure TKIP MIC handling */ From owner-svn-src-user@FreeBSD.ORG Tue Oct 18 07:54:23 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 341C1106566C; Tue, 18 Oct 2011 07:54:23 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 196D98FC0A; Tue, 18 Oct 2011 07:54:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9I7sMun062597; Tue, 18 Oct 2011 07:54:22 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9I7sM1R062595; Tue, 18 Oct 2011 07:54:22 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110180754.p9I7sM1R062595@svn.freebsd.org> From: Adrian Chadd Date: Tue, 18 Oct 2011 07:54:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226499 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2011 07:54:23 -0000 Author: adrian Date: Tue Oct 18 07:54:22 2011 New Revision: 226499 URL: http://svn.freebsd.org/changeset/base/226499 Log: Stick ath_start() and ath_tx_proc() behind the ath sc lock. This is to prevent ath_start() being preempted by a taskqueue or by the reset process. This is primarily to avoid having a reset or flush operation occur during active TX / TX completion, and having TX DMA be restarted when it's disabled. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 07:39:27 2011 (r226498) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 07:54:22 2011 (r226499) @@ -131,6 +131,7 @@ static void ath_init(void *); static void ath_stop_locked(struct ifnet *); static void ath_stop(struct ifnet *); static void ath_start(struct ifnet *); +static void ath_start_locked(struct ifnet *); static int ath_reset_vap(struct ieee80211vap *, u_long); static int ath_media_change(struct ifnet *); static void ath_watchdog(void *); @@ -1887,7 +1888,7 @@ ath_reset_locked(struct ifnet *ifp, ATH_ } ath_hal_intrset(ah, sc->sc_imask); - ath_start(ifp); /* restart xmit */ + ath_start_locked(ifp); /* restart xmit */ return 0; } @@ -2027,12 +2028,25 @@ static void ath_start(struct ifnet *ifp) { struct ath_softc *sc = ifp->if_softc; + + /* TODO: Ensure this isn't locked first! */ + ATH_LOCK(sc); + ath_start_locked(ifp); + ATH_UNLOCK(sc); +} + +static void +ath_start_locked(struct ifnet *ifp) +{ + struct ath_softc *sc = ifp->if_softc; struct ieee80211_node *ni; struct ath_buf *bf; struct mbuf *m, *next; ath_bufhead frags; int tx = 0; + ATH_LOCK_ASSERT(sc); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || sc->sc_invalid) return; for (;;) { @@ -4164,7 +4178,7 @@ rx_next: ieee80211_ff_age_all(ic, 100); #endif if (!IFQ_IS_EMPTY(&ifp->if_snd)) - ath_start(ifp); + ath_start_locked(ifp); } #undef PA2DESC } @@ -4660,7 +4674,6 @@ ath_tx_proc_q0(void *arg, int npending) ATH_LOCK(sc); txqs = sc->sc_txq_active; sc->sc_txq_active &= ~txqs; - ATH_UNLOCK(sc); if (TXQACTIVE(txqs, 0) && ath_tx_processq(sc, &sc->sc_txq[0], 1)) /* XXX why is lastrx updated in tx code? */ @@ -4673,7 +4686,8 @@ ath_tx_proc_q0(void *arg, int npending) if (sc->sc_softled) ath_led_event(sc, sc->sc_txrix); - ath_start(ifp); + ath_start_locked(ifp); + ATH_UNLOCK(sc); } /* @@ -4691,7 +4705,6 @@ ath_tx_proc_q0123(void *arg, int npendin ATH_LOCK(sc); txqs = sc->sc_txq_active; sc->sc_txq_active &= ~txqs; - ATH_UNLOCK(sc); /* * Process each active queue. @@ -4716,7 +4729,8 @@ ath_tx_proc_q0123(void *arg, int npendin if (sc->sc_softled) ath_led_event(sc, sc->sc_txrix); - ath_start(ifp); + ath_start_locked(ifp); + ATH_UNLOCK(sc); } /* @@ -4733,7 +4747,6 @@ ath_tx_proc(void *arg, int npending) ATH_LOCK(sc); txqs = sc->sc_txq_active; sc->sc_txq_active &= ~txqs; - ATH_UNLOCK(sc); /* * Process each active queue. @@ -4751,7 +4764,8 @@ ath_tx_proc(void *arg, int npending) if (sc->sc_softled) ath_led_event(sc, sc->sc_txrix); - ath_start(ifp); + ath_start_locked(ifp); + ATH_UNLOCK(sc); } #undef TXQACTIVE From owner-svn-src-user@FreeBSD.ORG Tue Oct 18 12:13:21 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B2261065674; Tue, 18 Oct 2011 12:13:21 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4B86C8FC1A; Tue, 18 Oct 2011 12:13:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9ICDLYr073239; Tue, 18 Oct 2011 12:13:21 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9ICDLH5073237; Tue, 18 Oct 2011 12:13:21 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110181213.p9ICDLH5073237@svn.freebsd.org> From: Adrian Chadd Date: Tue, 18 Oct 2011 12:13:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226508 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2011 12:13:21 -0000 Author: adrian Date: Tue Oct 18 12:13:20 2011 New Revision: 226508 URL: http://svn.freebsd.org/changeset/base/226508 Log: Lock ath_raw_xmit() for now, matching how ath_start() is currently locked. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Tue Oct 18 11:29:10 2011 (r226507) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Tue Oct 18 12:13:20 2011 (r226508) @@ -1663,6 +1663,8 @@ ath_raw_xmit(struct ieee80211_node *ni, struct ath_buf *bf; int error; + ATH_LOCK(sc); + if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || sc->sc_invalid) { DPRINTF(sc, ATH_DEBUG_XMIT, "%s: discard frame, %s", __func__, (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 ? @@ -1705,6 +1707,8 @@ ath_raw_xmit(struct ieee80211_node *ni, ifp->if_opackets++; sc->sc_stats.ast_tx_raw++; + ATH_UNLOCK(sc); + return 0; bad2: ATH_TXBUF_LOCK(sc); @@ -1713,6 +1717,7 @@ bad2: bad: ifp->if_oerrors++; sc->sc_stats.ast_tx_raw_fail++; + ATH_UNLOCK(sc); ieee80211_free_node(ni); return error; } From owner-svn-src-user@FreeBSD.ORG Tue Oct 18 15:38:00 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3A1141065672; Tue, 18 Oct 2011 15:38:00 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 292778FC17; Tue, 18 Oct 2011 15:38:00 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9IFc0Jc079700; Tue, 18 Oct 2011 15:38:00 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9IFbxnZ079695; Tue, 18 Oct 2011 15:37:59 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110181537.p9IFbxnZ079695@svn.freebsd.org> From: Adrian Chadd Date: Tue, 18 Oct 2011 15:37:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226515 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2011 15:38:00 -0000 Author: adrian Date: Tue Oct 18 15:37:59 2011 New Revision: 226515 URL: http://svn.freebsd.org/changeset/base/226515 Log: Begin fleshing out the "Don't drop frames during an interface reset" code. * Add sc->sc_in_reset, which is protected by the ATH_LOCK and is >0 when the interface is being reset. * Don't call draintxq on a recoverable interface reset - ie, one where there's no operational state change. If a channel change is needed, or a channel width change occurs, then yes frames are dropped for now. But if a stuck beacon occurs, just process the frames in the queue and queue subsequent frames being sent to the hardware. Instead, just process the queue normally via ath_tx_processq(), but don't reschedule the software TXQs. * Add a new function - ath_tx_restart_hw() - which restarts all currently configured hardware queues. This takes care of clearing the ATH_TXQ_PUTPENDING flag, reprograms the TXQ pointer, fixes up the axq_link pointer and finally tickles the TXQ enable bit. I don't quite like this solution - I'd prefer to have some local flag which is propagated down from ath_tx_processq() down to the completion callbacks, to ensure that nothing enqueues a frame to the hardware. In the ADDBA case, nothing should be going directly to the hardware - any software retried frame is pushed onto the head of the software TXQ and then retried when the TXQ is next scheduled. In the non-ADDBA case, frames aren't retried. The trouble is that there may be some callbacks invoked via net80211 which immediately tries scheduling another frame. Since the hardware is currently being reset, no new frame should be queued. But since ATH_LOCK is being held (and is recursive, sigh), it'll just be grabbed again and happily continue along its merry way. This way, frames are TX'ed but they won't hit the hardware queue until the reset path completes. Any TX'ing from other contexts will block on the ATH_LOCK. TODO: * Check that the node software TXQ's are being rescheduled correctly! I bet they're not. Note: In order to correctly handle ADDBA session TX, frames that are dropped due an interface reset must have a BAR TX'ed for the session. That still isn't being done. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.h user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 15:25:43 2011 (r226514) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 15:37:59 2011 (r226515) @@ -1850,8 +1850,10 @@ ath_reset_locked(struct ifnet *ifp, ATH_ struct ieee80211com *ic = ifp->if_l2com; struct ath_hal *ah = sc->sc_ah; HAL_STATUS status; + int i; ATH_LOCK_ASSERT(sc); + sc->sc_in_reset++; DPRINTF(sc, ATH_DEBUG_RESET, "%s: called\n", __func__); @@ -1888,7 +1890,17 @@ ath_reset_locked(struct ifnet *ifp, ATH_ } ath_hal_intrset(ah, sc->sc_imask); - ath_start_locked(ifp); /* restart xmit */ + /* Restart TX if needed */ + if (reset_type == ATH_RESET_NOLOSS) + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) + if (ATH_TXQ_SETUP(sc, i)) { + ATH_TXQ_LOCK(&sc->sc_txq[i]); + ath_tx_restart_hw(sc, &sc->sc_txq[i]); + ATH_TXQ_UNLOCK(&sc->sc_txq[i]); + } + + sc->sc_in_reset--; + ath_start_locked(ifp); /* restart netif xmit */ return 0; } @@ -4939,9 +4951,21 @@ ath_draintxq(struct ath_softc *sc, ATH_R struct ifnet *ifp = sc->sc_ifp; int i; + ATH_LOCK_ASSERT(sc); + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) - if (ATH_TXQ_SETUP(sc, i)) - ath_tx_draintxq(sc, &sc->sc_txq[i]); + /* + * If the reset type is ATH_RESET_NOLOSS, don't + * reschedule any further TXQ activity. + * + * XXX TODO: suspend TX operations during reset. + */ + if (ATH_TXQ_SETUP(sc, i)) { + if (reset_type == ATH_RESET_NOLOSS) + ath_tx_processq(sc, &sc->sc_txq[i], 0); + else + ath_tx_draintxq(sc, &sc->sc_txq[i]); + } #ifdef ATH_DEBUG if (sc->sc_debug & ATH_DEBUG_RESET) { struct ath_buf *bf = TAILQ_FIRST(&sc->sc_bbuf); @@ -4955,8 +4979,10 @@ ath_draintxq(struct ath_softc *sc, ATH_R } } #endif /* ATH_DEBUG */ - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - sc->sc_wd_timer = 0; + if (reset_type != ATH_RESET_NOLOSS) { + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + sc->sc_wd_timer = 0; + } } /* Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Tue Oct 18 15:25:43 2011 (r226514) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Tue Oct 18 15:37:59 2011 (r226515) @@ -477,10 +477,35 @@ ath_tx_handoff_mcast(struct ath_softc *s txq->axq_link = &bf->bf_lastds->ds_link; } +/* + * Restart TX DMA for the given TXQ. + * + * This must be called whether the queue is empty or not. + */ +void +ath_tx_restart_hw(struct ath_softc *sc, struct ath_txq *txq) +{ + struct ath_hal *ah = sc->sc_ah; + struct ath_buf *bf; + ATH_TXQ_LOCK_ASSERT(txq); + + /* This is always going to be cleared, empty or not */ + txq->axq_flags &= ~ATH_TXQ_PUTPENDING; + + bf = TAILQ_FIRST(&txq->axq_q); + if (bf == NULL) + return; + + ath_hal_puttxbuf(ah, txq->axq_qnum, bf->bf_daddr); + txq->axq_link = &bf->bf_lastds->ds_link; + ath_hal_txstart(ah, txq->axq_qnum); +} /* * Hand-off packet to a hardware queue. + * + * Just queue the frame if the hardware is in a reset state. */ static void ath_tx_handoff_hw(struct ath_softc *sc, struct ath_txq *txq, struct ath_buf *bf) @@ -501,6 +526,28 @@ ath_tx_handoff_hw(struct ath_softc *sc, KASSERT(txq->axq_qnum != ATH_TXQ_SWQ, ("ath_tx_handoff_hw called for mcast queue")); + ATH_LOCK_ASSERT(sc); + + if (sc->sc_in_reset) { + DPRINTF(sc, ATH_DEBUG_RESET, + "%s: called with sc_in_reset != 0\n", + __func__); + DPRINTF(sc, ATH_DEBUG_XMIT, + "%s: queued: TXDP[%u] = %p (%p) depth %d\n", + __func__, txq->axq_qnum, + (caddr_t)bf->bf_daddr, bf->bf_desc, + txq->axq_depth); + ATH_TXQ_INSERT_TAIL(txq, bf, bf_list); + if (bf->bf_state.bfs_aggr) + txq->axq_aggr_depth++; + /* + * There's no need to update axq_link; the hardware + * is in reset and once the reset is complete, any + * non-empty queues will simply have DMA restarted. + */ + return; + } + /* For now, so not to generate whitespace diffs */ if (1) { #ifdef IEEE80211_SUPPORT_TDMA Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.h ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.h Tue Oct 18 15:25:43 2011 (r226514) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.h Tue Oct 18 15:37:59 2011 (r226515) @@ -79,6 +79,7 @@ #define BAW_WITHIN(_start, _bawsz, _seqno) \ ((((_seqno) - (_start)) & 4095) < (_bawsz)) +extern void ath_tx_restart_hw(struct ath_softc *sc, struct ath_txq *txq); extern void ath_freetx(struct mbuf *m); extern void ath_tx_node_flush(struct ath_softc *sc, struct ath_node *an); extern void ath_tx_txq_drain(struct ath_softc *sc, struct ath_txq *txq); Modified: user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Tue Oct 18 15:25:43 2011 (r226514) +++ user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Tue Oct 18 15:37:59 2011 (r226515) @@ -435,6 +435,22 @@ struct ath_softc { uint32_t sc_txq_active; /* bitmap of active TXQs */ uint32_t sc_kickpcu; /* whether to kick the PCU */ + /* + * These are also currently protected by the ATH_LOCK and + * aren't atomics. + * + * These indicate whether any of the below tasks are currently + * running. If, for example, we are in the middle of a reset + * call then TX/RX must be suspended until it completes. + */ + uint32_t sc_in_reset; /* whether in a reset */ +#ifdef notyet + uint32_t sc_in_intr; /* whether in ath_intr */ + uint32_t sc_in_rxtask; /* whether in rxtask */ + uint32_t sc_in_xmit; /* whether in ath_start / ath_raw_xmit */ + uint32_t sc_in_txtask; /* whether in ath_tx_proc* */ +#endif + u_int sc_keymax; /* size of key cache */ u_int8_t sc_keymap[ATH_KEYBYTES];/* key use bit map */ From owner-svn-src-user@FreeBSD.ORG Tue Oct 18 15:53:48 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C2800106564A; Tue, 18 Oct 2011 15:53:48 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B2A848FC19; Tue, 18 Oct 2011 15:53:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9IFrmhf080202; Tue, 18 Oct 2011 15:53:48 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9IFrmkG080200; Tue, 18 Oct 2011 15:53:48 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110181553.p9IFrmkG080200@svn.freebsd.org> From: Adrian Chadd Date: Tue, 18 Oct 2011 15:53:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226516 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Oct 2011 15:53:48 -0000 Author: adrian Date: Tue Oct 18 15:53:48 2011 New Revision: 226516 URL: http://svn.freebsd.org/changeset/base/226516 Log: .. add the missing call to ath_txq_sched(). Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 15:37:59 2011 (r226515) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Tue Oct 18 15:53:48 2011 (r226516) @@ -1896,6 +1896,7 @@ ath_reset_locked(struct ifnet *ifp, ATH_ if (ATH_TXQ_SETUP(sc, i)) { ATH_TXQ_LOCK(&sc->sc_txq[i]); ath_tx_restart_hw(sc, &sc->sc_txq[i]); + ath_txq_sched(sc, &sc->sc_txq[i]); ATH_TXQ_UNLOCK(&sc->sc_txq[i]); } From owner-svn-src-user@FreeBSD.ORG Wed Oct 19 01:23:13 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D977F106566C; Wed, 19 Oct 2011 01:23:13 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id C9F6D8FC0A; Wed, 19 Oct 2011 01:23:13 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9J1NDoi098227; Wed, 19 Oct 2011 01:23:13 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9J1NDCF098225; Wed, 19 Oct 2011 01:23:13 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201110190123.p9J1NDCF098225@svn.freebsd.org> From: Doug Barton Date: Wed, 19 Oct 2011 01:23:13 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226524 - user/dougb/portmaster X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Oct 2011 01:23:13 -0000 Author: dougb Date: Wed Oct 19 01:23:13 2011 New Revision: 226524 URL: http://svn.freebsd.org/changeset/base/226524 Log: In parent_exit() run the code to kill background processes if we're called with a non-zero exit code. That will trigger it (for example) where the user answers no to the confirmation prompt and is either using -D, or the generation of the list of valid distfiles did not complete. Now that there are 3 sites to trip it, use a flag to indicate that it needs to be run to make sure that we don't run it more than once. Modified: user/dougb/portmaster/portmaster Modified: user/dougb/portmaster/portmaster ============================================================================== --- user/dougb/portmaster/portmaster Tue Oct 18 22:51:40 2011 (r226523) +++ user/dougb/portmaster/portmaster Wed Oct 19 01:23:13 2011 (r226524) @@ -118,11 +118,11 @@ kill_bad_children () { } parent_exit () { - local files f DISCARD show_list + local need_kbc files f DISCARD show_list - [ -s "$DI_FILES" ] && { grep -q '%%%%%%%%%%%%' $DI_FILES || kill_bad_children; } + [ -s "$DI_FILES" ] && { grep -q '%%%%%%%%%%%%' $DI_FILES || need_kbc=need_kbc_dif; } - [ -n "$FETCH_ONLY" -a -z "$FETCH_ONLY_DONE" ] && kill_bad_children + [ -n "$FETCH_ONLY" -a -z "$FETCH_ONLY_DONE" ] && need_kbc=need_kbc_fo if [ -z "$1" ]; then if [ -n "$PM_URB" -o -n "$PM_FORCE" ]; then @@ -137,8 +137,12 @@ parent_exit () { pm_cd $pbu || fail "Cannot cd to $pbu" pm_rm_s $NB_DELETE fi + else + need_kbc=need_kbc_ec fi + [ -n "$need_kbc" ] && kill_bad_children + [ -n "$pbu" ] && pbu=`find $pbu -type d -empty 2>/dev/null` if [ -d "$pbu" ]; then pm_sv 'Removing empty backup package directory' From owner-svn-src-user@FreeBSD.ORG Wed Oct 19 08:39:45 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 31ACE106567B; Wed, 19 Oct 2011 08:39:45 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 20D458FC17; Wed, 19 Oct 2011 08:39:45 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9J8djHR012354; Wed, 19 Oct 2011 08:39:45 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9J8dju7012349; Wed, 19 Oct 2011 08:39:45 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110190839.p9J8dju7012349@svn.freebsd.org> From: Adrian Chadd Date: Wed, 19 Oct 2011 08:39:45 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226528 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Oct 2011 08:39:45 -0000 Author: adrian Date: Wed Oct 19 08:39:44 2011 New Revision: 226528 URL: http://svn.freebsd.org/changeset/base/226528 Log: Rollback r226399 to r226516. It turns out that no, I can't hold these locks for this long without causing all kinds of LORs with both net80211 and the IP stack. Things work ok in hostap mode when bridging occurs but it all utterly fails (and very quickly) when passing IP traffic. I'll re-merge in some of the useful work here, but I unfortunately can't just cheat and hold locks as a method of enforcing atomic and predictable states within the driver. As a node: iwn holds the IWN_LOCK for long periods but it doesn't hold it over some net80211 calls and the RX path. The TX path however has it being held. So when RX'ing, the net80211 ic comlock will be grabbed when calling ieee80211_input and ieee80211_free_node(). When TX'ing, the IWN_LOCK is grabbed, then net80211 comlock will be grabbed on completion of each frame. So a LOR will likely occur if the IWN_LOCK is grabbed at any point whilst the net80211 lock is held. eg, maybe a channel change? or reset? I'll have to look into it. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.h user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Wed Oct 19 08:37:48 2011 (r226527) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Wed Oct 19 08:39:44 2011 (r226528) @@ -131,7 +131,6 @@ static void ath_init(void *); static void ath_stop_locked(struct ifnet *); static void ath_stop(struct ifnet *); static void ath_start(struct ifnet *); -static void ath_start_locked(struct ifnet *); static int ath_reset_vap(struct ieee80211vap *, u_long); static int ath_media_change(struct ifnet *); static void ath_watchdog(void *); @@ -183,7 +182,6 @@ static void ath_tx_proc_q0(void *, int); static void ath_tx_proc_q0123(void *, int); static void ath_tx_proc(void *, int); static int ath_chan_set(struct ath_softc *, struct ieee80211_channel *); -static int ath_stoptxdma(struct ath_softc *); static void ath_draintxq(struct ath_softc *, ATH_RESET_TYPE reset_type); static void ath_stoprecv(struct ath_softc *); static int ath_startrecv(struct ath_softc *); @@ -1133,19 +1131,15 @@ ath_vap_delete(struct ieee80211vap *vap) DPRINTF(sc, ATH_DEBUG_RESET, "%s: called\n", __func__); if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - ATH_LOCK(sc); /* * Quiesce the hardware while we remove the vap. In * particular we need to reclaim all references to * the vap state by any frames pending on the tx queues. */ ath_hal_intrset(ah, 0); /* disable interrupts */ - ath_stoptxdma(sc); /* stop TX DMA */ - ath_draintxq(sc, ATH_RESET_DEFAULT); /* Drain TX queues */ + ath_draintxq(sc, ATH_RESET_DEFAULT); /* stop hw xmit side */ /* XXX Do all frames from all vaps/nodes need draining here? */ ath_stoprecv(sc); /* stop recv side */ - ath_rx_proc(sc, 0); - ATH_UNLOCK(sc); } ieee80211_vap_detach(vap); @@ -1167,11 +1161,7 @@ ath_vap_delete(struct ieee80211vap *vap) * call!) */ - if (ifp->if_drv_flags & IFF_DRV_RUNNING) { - ATH_LOCK(sc); - ath_draintxq(sc, ATH_RESET_DEFAULT); - ATH_UNLOCK(sc); - } + ath_draintxq(sc, ATH_RESET_DEFAULT); ATH_LOCK(sc); /* @@ -1488,6 +1478,7 @@ ath_intr(void *arg) } if (status & HAL_INT_TX) { sc->sc_stats.ast_tx_intr++; + taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask); /* * Grab all the currently set bits in the HAL txq bitmap @@ -1499,7 +1490,6 @@ ath_intr(void *arg) ath_hal_gettxintrtxqs(sc->sc_ah, &txqs); sc->sc_txq_active |= txqs; ATH_UNLOCK(sc); - taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask); } if (status & HAL_INT_BMISS) { sc->sc_stats.ast_bmiss++; @@ -1802,11 +1792,9 @@ ath_stop_locked(struct ifnet *ifp) } ath_hal_intrset(ah, 0); } - ath_stoptxdma(sc); /* stop TX dma */ - ath_draintxq(sc, ATH_RESET_DEFAULT); /* drain TX queues */ + ath_draintxq(sc, ATH_RESET_DEFAULT); if (!sc->sc_invalid) { ath_stoprecv(sc); - ath_rx_proc(sc, 0); ath_hal_phydisable(ah); } else sc->sc_rxlink = NULL; @@ -1850,18 +1838,19 @@ ath_reset_locked(struct ifnet *ifp, ATH_ struct ieee80211com *ic = ifp->if_l2com; struct ath_hal *ah = sc->sc_ah; HAL_STATUS status; - int i; ATH_LOCK_ASSERT(sc); - sc->sc_in_reset++; DPRINTF(sc, ATH_DEBUG_RESET, "%s: called\n", __func__); ath_hal_intrset(ah, 0); /* disable interrupts */ - ath_stoptxdma(sc); /* stop TX side */ - ath_draintxq(sc, reset_type); /* drain TXQs if needed */ + ath_draintxq(sc, reset_type); /* stop xmit side */ + /* + * XXX Don't flush if ATH_RESET_NOLOSS;but we have to first + * XXX need to ensure this doesn't race with an outstanding + * XXX taskqueue call. + */ ath_stoprecv(sc); /* stop recv side */ - ath_rx_proc(sc, 0); /* process RX'ed frames in the queue */ ath_settkipmic(sc); /* configure TKIP MIC handling */ /* NB: indicate channel change so we do a full reset */ if (!ath_hal_reset(ah, sc->sc_opmode, ic->ic_curchan, AH_TRUE, &status)) @@ -1890,18 +1879,7 @@ ath_reset_locked(struct ifnet *ifp, ATH_ } ath_hal_intrset(ah, sc->sc_imask); - /* Restart TX if needed */ - if (reset_type == ATH_RESET_NOLOSS) - for (i = 0; i < HAL_NUM_TX_QUEUES; i++) - if (ATH_TXQ_SETUP(sc, i)) { - ATH_TXQ_LOCK(&sc->sc_txq[i]); - ath_tx_restart_hw(sc, &sc->sc_txq[i]); - ath_txq_sched(sc, &sc->sc_txq[i]); - ATH_TXQ_UNLOCK(&sc->sc_txq[i]); - } - - sc->sc_in_reset--; - ath_start_locked(ifp); /* restart netif xmit */ + ath_start(ifp); /* restart xmit */ return 0; } @@ -2041,25 +2019,12 @@ static void ath_start(struct ifnet *ifp) { struct ath_softc *sc = ifp->if_softc; - - /* TODO: Ensure this isn't locked first! */ - ATH_LOCK(sc); - ath_start_locked(ifp); - ATH_UNLOCK(sc); -} - -static void -ath_start_locked(struct ifnet *ifp) -{ - struct ath_softc *sc = ifp->if_softc; struct ieee80211_node *ni; struct ath_buf *bf; struct mbuf *m, *next; ath_bufhead frags; int tx = 0; - ATH_LOCK_ASSERT(sc); - if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || sc->sc_invalid) return; for (;;) { @@ -3756,11 +3721,9 @@ ath_rx_tasklet(void *arg, int npending) { struct ath_softc *sc = arg; - ATH_LOCK(sc); CTR1(ATH_KTR_INTR, "ath_rx_proc: pending=%d", npending); DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s: pending %u\n", __func__, npending); ath_rx_proc(sc, 1); - ATH_UNLOCK(sc); } static void @@ -3783,8 +3746,6 @@ ath_rx_proc(struct ath_softc *sc, int re u_int64_t tsf; int npkts = 0; - ATH_LOCK_ASSERT(sc); - DPRINTF(sc, ATH_DEBUG_RX_PROC, "%s: called\n", __func__); ngood = 0; nf = ath_hal_getchannoise(ah, sc->sc_curchan); @@ -4169,11 +4130,38 @@ rx_next: * need to be handled, kick the PCU if there's * been an RXEOL condition. */ + /* + * XXX TODO! + * It is very likely that we're unfortunately + * racing with other places where ath_hal_intrset() + * may be called. It may be that we do need to + * add some more locking (eg the pcu lock from ath9k/ + * reference), or introduce some other way to cope + * with this. + */ if (resched && sc->sc_kickpcu) { CTR0(ATH_KTR_ERR, "ath_rx_proc: kickpcu"); device_printf(sc->sc_dev, "%s: kickpcu; handled %d packets\n", __func__, npkts); +#if 0 + /* + * This re-links all of the descriptors together. + * (Is it possible that somehow, some state/issue + * is leaving us with badly linked descriptors?) + * Is it possible that we're receiving another RXEOL + * _during_ this function? + */ + if (ath_startrecv(sc) != 0) { + if_printf(ifp, + "%s: couldn't restart RX after RXEOL; resetting\n", + __func__); + ath_reset(ifp); + sc->sc_kickpcu = 0; + return; + } +#endif + /* XXX rxslink? */ bf = TAILQ_FIRST(&sc->sc_rxbuf); ath_hal_putrxbuf(ah, bf->bf_daddr); @@ -4181,9 +4169,10 @@ rx_next: ath_mode_init(sc); /* set filters, etc. */ ath_hal_startpcurecv(ah); /* re-enable PCU/DMA engine */ - ATH_LOCK_ASSERT(sc); + ATH_LOCK(sc); ath_hal_intrset(ah, sc->sc_imask); sc->sc_kickpcu = 0; + ATH_UNLOCK(sc); } if (resched && (ifp->if_drv_flags & IFF_DRV_OACTIVE) == 0) { @@ -4191,7 +4180,7 @@ rx_next: ieee80211_ff_age_all(ic, 100); #endif if (!IFQ_IS_EMPTY(&ifp->if_snd)) - ath_start_locked(ifp); + ath_start(ifp); } #undef PA2DESC } @@ -4535,7 +4524,7 @@ ath_tx_update_ratectrl(struct ath_softc * particular task. */ static int -ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq, int dosched) +ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) { struct ath_hal *ah = sc->sc_ah; struct ath_buf *bf, *last; @@ -4662,11 +4651,9 @@ ath_tx_processq(struct ath_softc *sc, st #endif /* Kick the TXQ scheduler */ - if (dosched) { - ATH_TXQ_LOCK(txq); - ath_txq_sched(sc, txq); - ATH_TXQ_UNLOCK(txq); - } + ATH_TXQ_LOCK(txq); + ath_txq_sched(sc, txq); + ATH_TXQ_UNLOCK(txq); return nacked; } @@ -4687,20 +4674,20 @@ ath_tx_proc_q0(void *arg, int npending) ATH_LOCK(sc); txqs = sc->sc_txq_active; sc->sc_txq_active &= ~txqs; + ATH_UNLOCK(sc); - if (TXQACTIVE(txqs, 0) && ath_tx_processq(sc, &sc->sc_txq[0], 1)) + if (TXQACTIVE(txqs, 0) && ath_tx_processq(sc, &sc->sc_txq[0])) /* XXX why is lastrx updated in tx code? */ sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); if (TXQACTIVE(txqs, sc->sc_cabq->axq_qnum)) - ath_tx_processq(sc, sc->sc_cabq, 1); + ath_tx_processq(sc, sc->sc_cabq); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; sc->sc_wd_timer = 0; if (sc->sc_softled) ath_led_event(sc, sc->sc_txrix); - ath_start_locked(ifp); - ATH_UNLOCK(sc); + ath_start(ifp); } /* @@ -4718,21 +4705,22 @@ ath_tx_proc_q0123(void *arg, int npendin ATH_LOCK(sc); txqs = sc->sc_txq_active; sc->sc_txq_active &= ~txqs; + ATH_UNLOCK(sc); /* * Process each active queue. */ nacked = 0; if (TXQACTIVE(txqs, 0)) - nacked += ath_tx_processq(sc, &sc->sc_txq[0], 1); + nacked += ath_tx_processq(sc, &sc->sc_txq[0]); if (TXQACTIVE(txqs, 1)) - nacked += ath_tx_processq(sc, &sc->sc_txq[1], 1); + nacked += ath_tx_processq(sc, &sc->sc_txq[1]); if (TXQACTIVE(txqs, 2)) - nacked += ath_tx_processq(sc, &sc->sc_txq[2], 1); + nacked += ath_tx_processq(sc, &sc->sc_txq[2]); if (TXQACTIVE(txqs, 3)) - nacked += ath_tx_processq(sc, &sc->sc_txq[3], 1); + nacked += ath_tx_processq(sc, &sc->sc_txq[3]); if (TXQACTIVE(txqs, sc->sc_cabq->axq_qnum)) - ath_tx_processq(sc, sc->sc_cabq, 1); + ath_tx_processq(sc, sc->sc_cabq); if (nacked) sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); @@ -4742,8 +4730,7 @@ ath_tx_proc_q0123(void *arg, int npendin if (sc->sc_softled) ath_led_event(sc, sc->sc_txrix); - ath_start_locked(ifp); - ATH_UNLOCK(sc); + ath_start(ifp); } /* @@ -4760,6 +4747,7 @@ ath_tx_proc(void *arg, int npending) ATH_LOCK(sc); txqs = sc->sc_txq_active; sc->sc_txq_active &= ~txqs; + ATH_UNLOCK(sc); /* * Process each active queue. @@ -4767,7 +4755,7 @@ ath_tx_proc(void *arg, int npending) nacked = 0; for (i = 0; i < HAL_NUM_TX_QUEUES; i++) if (ATH_TXQ_SETUP(sc, i) && TXQACTIVE(txqs, i)) - nacked += ath_tx_processq(sc, &sc->sc_txq[i], 1); + nacked += ath_tx_processq(sc, &sc->sc_txq[i]); if (nacked) sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); @@ -4777,8 +4765,7 @@ ath_tx_proc(void *arg, int npending) if (sc->sc_softled) ath_led_event(sc, sc->sc_txrix); - ath_start_locked(ifp); - ATH_UNLOCK(sc); + ath_start(ifp); } #undef TXQACTIVE @@ -4913,36 +4900,6 @@ ath_tx_stopdma(struct ath_softc *sc, str } /* - * Stop TX DMA. - * - * The sc lock must be held. - */ -static int -ath_stoptxdma(struct ath_softc *sc) -{ - struct ath_hal *ah = sc->sc_ah; - int i; - - ATH_LOCK_ASSERT(sc); - - /* XXX return value */ - if (!sc->sc_invalid) - return 0; - - /* don't touch the hardware if marked invalid */ - DPRINTF(sc, ATH_DEBUG_RESET, "%s: tx queue [%u] %p, link %p\n", - __func__, sc->sc_bhalq, - (caddr_t)(uintptr_t) ath_hal_gettxbuf(ah, sc->sc_bhalq), - NULL); - (void) ath_hal_stoptxdma(ah, sc->sc_bhalq); - for (i = 0; i < HAL_NUM_TX_QUEUES; i++) - if (ATH_TXQ_SETUP(sc, i)) - ath_tx_stopdma(sc, &sc->sc_txq[i]); - - return 1; -} - -/* * Drain the transmit queues and reclaim resources. */ static void @@ -4952,21 +4909,21 @@ ath_draintxq(struct ath_softc *sc, ATH_R struct ifnet *ifp = sc->sc_ifp; int i; - ATH_LOCK_ASSERT(sc); - + /* XXX return value */ + if (!sc->sc_invalid) { + /* don't touch the hardware if marked invalid */ + DPRINTF(sc, ATH_DEBUG_RESET, "%s: tx queue [%u] %p, link %p\n", + __func__, sc->sc_bhalq, + (caddr_t)(uintptr_t) ath_hal_gettxbuf(ah, sc->sc_bhalq), + NULL); + (void) ath_hal_stoptxdma(ah, sc->sc_bhalq); + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) + if (ATH_TXQ_SETUP(sc, i)) + ath_tx_stopdma(sc, &sc->sc_txq[i]); + } for (i = 0; i < HAL_NUM_TX_QUEUES; i++) - /* - * If the reset type is ATH_RESET_NOLOSS, don't - * reschedule any further TXQ activity. - * - * XXX TODO: suspend TX operations during reset. - */ - if (ATH_TXQ_SETUP(sc, i)) { - if (reset_type == ATH_RESET_NOLOSS) - ath_tx_processq(sc, &sc->sc_txq[i], 0); - else - ath_tx_draintxq(sc, &sc->sc_txq[i]); - } + if (ATH_TXQ_SETUP(sc, i)) + ath_tx_draintxq(sc, &sc->sc_txq[i]); #ifdef ATH_DEBUG if (sc->sc_debug & ATH_DEBUG_RESET) { struct ath_buf *bf = TAILQ_FIRST(&sc->sc_bbuf); @@ -4980,10 +4937,8 @@ ath_draintxq(struct ath_softc *sc, ATH_R } } #endif /* ATH_DEBUG */ - if (reset_type != ATH_RESET_NOLOSS) { - ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; - sc->sc_wd_timer = 0; - } + ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; + sc->sc_wd_timer = 0; } /* @@ -4997,8 +4952,6 @@ ath_stoprecv(struct ath_softc *sc) ((_pa) - (_sc)->sc_rxdma.dd_desc_paddr))) struct ath_hal *ah = sc->sc_ah; - ATH_LOCK_ASSERT(sc); - ath_hal_stoppcurecv(ah); /* disable PCU */ ath_hal_setrxfilter(ah, 0); /* clear recv filter */ ath_hal_stopdmarecv(ah); /* disable DMA engine */ @@ -5106,10 +5059,8 @@ ath_chan_set(struct ath_softc *sc, struc * the relevant bits of the h/w. */ ath_hal_intrset(ah, 0); /* disable interrupts */ - ath_stoptxdma(sc); /* stop TX side */ ath_draintxq(sc, ATH_RESET_FULL); /* clear pending tx frames */ ath_stoprecv(sc); /* turn off frame recv */ - ath_rx_proc(sc, 0); /* handle RX'ed frames */ if (!ath_hal_reset(ah, sc->sc_opmode, chan, AH_TRUE, &status)) { if_printf(ifp, "%s: unable to reset " "channel %u (%u MHz, flags 0x%x), hal status %u\n", Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Wed Oct 19 08:37:48 2011 (r226527) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.c Wed Oct 19 08:39:44 2011 (r226528) @@ -477,35 +477,10 @@ ath_tx_handoff_mcast(struct ath_softc *s txq->axq_link = &bf->bf_lastds->ds_link; } -/* - * Restart TX DMA for the given TXQ. - * - * This must be called whether the queue is empty or not. - */ -void -ath_tx_restart_hw(struct ath_softc *sc, struct ath_txq *txq) -{ - struct ath_hal *ah = sc->sc_ah; - struct ath_buf *bf; - ATH_TXQ_LOCK_ASSERT(txq); - - /* This is always going to be cleared, empty or not */ - txq->axq_flags &= ~ATH_TXQ_PUTPENDING; - - bf = TAILQ_FIRST(&txq->axq_q); - if (bf == NULL) - return; - - ath_hal_puttxbuf(ah, txq->axq_qnum, bf->bf_daddr); - txq->axq_link = &bf->bf_lastds->ds_link; - ath_hal_txstart(ah, txq->axq_qnum); -} /* * Hand-off packet to a hardware queue. - * - * Just queue the frame if the hardware is in a reset state. */ static void ath_tx_handoff_hw(struct ath_softc *sc, struct ath_txq *txq, struct ath_buf *bf) @@ -526,28 +501,6 @@ ath_tx_handoff_hw(struct ath_softc *sc, KASSERT(txq->axq_qnum != ATH_TXQ_SWQ, ("ath_tx_handoff_hw called for mcast queue")); - ATH_LOCK_ASSERT(sc); - - if (sc->sc_in_reset) { - DPRINTF(sc, ATH_DEBUG_RESET, - "%s: called with sc_in_reset != 0\n", - __func__); - DPRINTF(sc, ATH_DEBUG_XMIT, - "%s: queued: TXDP[%u] = %p (%p) depth %d\n", - __func__, txq->axq_qnum, - (caddr_t)bf->bf_daddr, bf->bf_desc, - txq->axq_depth); - ATH_TXQ_INSERT_TAIL(txq, bf, bf_list); - if (bf->bf_state.bfs_aggr) - txq->axq_aggr_depth++; - /* - * There's no need to update axq_link; the hardware - * is in reset and once the reset is complete, any - * non-empty queues will simply have DMA restarted. - */ - return; - } - /* For now, so not to generate whitespace diffs */ if (1) { #ifdef IEEE80211_SUPPORT_TDMA @@ -1710,8 +1663,6 @@ ath_raw_xmit(struct ieee80211_node *ni, struct ath_buf *bf; int error; - ATH_LOCK(sc); - if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 || sc->sc_invalid) { DPRINTF(sc, ATH_DEBUG_XMIT, "%s: discard frame, %s", __func__, (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0 ? @@ -1754,8 +1705,6 @@ ath_raw_xmit(struct ieee80211_node *ni, ifp->if_opackets++; sc->sc_stats.ast_tx_raw++; - ATH_UNLOCK(sc); - return 0; bad2: ATH_TXBUF_LOCK(sc); @@ -1764,7 +1713,6 @@ bad2: bad: ifp->if_oerrors++; sc->sc_stats.ast_tx_raw_fail++; - ATH_UNLOCK(sc); ieee80211_free_node(ni); return error; } Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.h ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.h Wed Oct 19 08:37:48 2011 (r226527) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_tx.h Wed Oct 19 08:39:44 2011 (r226528) @@ -79,7 +79,6 @@ #define BAW_WITHIN(_start, _bawsz, _seqno) \ ((((_seqno) - (_start)) & 4095) < (_bawsz)) -extern void ath_tx_restart_hw(struct ath_softc *sc, struct ath_txq *txq); extern void ath_freetx(struct mbuf *m); extern void ath_tx_node_flush(struct ath_softc *sc, struct ath_node *an); extern void ath_tx_txq_drain(struct ath_softc *sc, struct ath_txq *txq); Modified: user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Wed Oct 19 08:37:48 2011 (r226527) +++ user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Wed Oct 19 08:39:44 2011 (r226528) @@ -435,22 +435,6 @@ struct ath_softc { uint32_t sc_txq_active; /* bitmap of active TXQs */ uint32_t sc_kickpcu; /* whether to kick the PCU */ - /* - * These are also currently protected by the ATH_LOCK and - * aren't atomics. - * - * These indicate whether any of the below tasks are currently - * running. If, for example, we are in the middle of a reset - * call then TX/RX must be suspended until it completes. - */ - uint32_t sc_in_reset; /* whether in a reset */ -#ifdef notyet - uint32_t sc_in_intr; /* whether in ath_intr */ - uint32_t sc_in_rxtask; /* whether in rxtask */ - uint32_t sc_in_xmit; /* whether in ath_start / ath_raw_xmit */ - uint32_t sc_in_txtask; /* whether in ath_tx_proc* */ -#endif - u_int sc_keymax; /* size of key cache */ u_int8_t sc_keymap[ATH_KEYBYTES];/* key use bit map */ From owner-svn-src-user@FreeBSD.ORG Wed Oct 19 08:52:14 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E1CDF106566C; Wed, 19 Oct 2011 08:52:14 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D264A8FC0C; Wed, 19 Oct 2011 08:52:14 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9J8qE3U012778; Wed, 19 Oct 2011 08:52:14 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9J8qE5v012776; Wed, 19 Oct 2011 08:52:14 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110190852.p9J8qE5v012776@svn.freebsd.org> From: Adrian Chadd Date: Wed, 19 Oct 2011 08:52:14 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226529 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Oct 2011 08:52:15 -0000 Author: adrian Date: Wed Oct 19 08:52:14 2011 New Revision: 226529 URL: http://svn.freebsd.org/changeset/base/226529 Log: Remove unneeded code and comment. The race has been fixed by placing the relevant bits behind ATH_LOCK. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Wed Oct 19 08:39:44 2011 (r226528) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Wed Oct 19 08:52:14 2011 (r226529) @@ -4130,38 +4130,11 @@ rx_next: * need to be handled, kick the PCU if there's * been an RXEOL condition. */ - /* - * XXX TODO! - * It is very likely that we're unfortunately - * racing with other places where ath_hal_intrset() - * may be called. It may be that we do need to - * add some more locking (eg the pcu lock from ath9k/ - * reference), or introduce some other way to cope - * with this. - */ if (resched && sc->sc_kickpcu) { CTR0(ATH_KTR_ERR, "ath_rx_proc: kickpcu"); device_printf(sc->sc_dev, "%s: kickpcu; handled %d packets\n", __func__, npkts); -#if 0 - /* - * This re-links all of the descriptors together. - * (Is it possible that somehow, some state/issue - * is leaving us with badly linked descriptors?) - * Is it possible that we're receiving another RXEOL - * _during_ this function? - */ - if (ath_startrecv(sc) != 0) { - if_printf(ifp, - "%s: couldn't restart RX after RXEOL; resetting\n", - __func__); - ath_reset(ifp); - sc->sc_kickpcu = 0; - return; - } -#endif - /* XXX rxslink? */ bf = TAILQ_FIRST(&sc->sc_rxbuf); ath_hal_putrxbuf(ah, bf->bf_daddr); From owner-svn-src-user@FreeBSD.ORG Wed Oct 19 12:16:20 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 59D791065674; Wed, 19 Oct 2011 12:16:20 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 49FB58FC27; Wed, 19 Oct 2011 12:16:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9JCGKsp024426; Wed, 19 Oct 2011 12:16:20 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9JCGKcr024423; Wed, 19 Oct 2011 12:16:20 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110191216.p9JCGKcr024423@svn.freebsd.org> From: Adrian Chadd Date: Wed, 19 Oct 2011 12:16:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226542 - in user/adrian/if_ath_tx/sys: kern sys X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Oct 2011 12:16:20 -0000 Author: adrian Date: Wed Oct 19 12:16:19 2011 New Revision: 226542 URL: http://svn.freebsd.org/changeset/base/226542 Log: Begin fleshing out a way to wait for all pending taskqueue entries to complete. The current API only lets you wait for a given taskqueue task, rather than all of them. This isn't (yet) tested. Modified: user/adrian/if_ath_tx/sys/kern/subr_taskqueue.c user/adrian/if_ath_tx/sys/sys/taskqueue.h Modified: user/adrian/if_ath_tx/sys/kern/subr_taskqueue.c ============================================================================== --- user/adrian/if_ath_tx/sys/kern/subr_taskqueue.c Wed Oct 19 12:15:16 2011 (r226541) +++ user/adrian/if_ath_tx/sys/kern/subr_taskqueue.c Wed Oct 19 12:16:19 2011 (r226542) @@ -397,6 +397,22 @@ taskqueue_drain(struct taskqueue *queue, TQ_UNLOCK(queue); } +/* + * XXX this is currently completely and utterly undocumented. + */ +void +taskqueue_drain_all(struct taskqueue *queue) +{ + + if (!queue->tq_spin) + WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, __func__); + + TQ_LOCK(queue); + while (! STAILQ_EMPTY(&queue->tq_queue)) + TQ_SLEEP(queue, queue, &queue->tq_mutex, PWAIT, "-", 0); + TQ_UNLOCK(queue); +} + void taskqueue_drain_timeout(struct taskqueue *queue, struct timeout_task *timeout_task) Modified: user/adrian/if_ath_tx/sys/sys/taskqueue.h ============================================================================== --- user/adrian/if_ath_tx/sys/sys/taskqueue.h Wed Oct 19 12:15:16 2011 (r226541) +++ user/adrian/if_ath_tx/sys/sys/taskqueue.h Wed Oct 19 12:16:19 2011 (r226542) @@ -69,6 +69,7 @@ int taskqueue_cancel(struct taskqueue *q int taskqueue_cancel_timeout(struct taskqueue *queue, struct timeout_task *timeout_task, u_int *pendp); void taskqueue_drain(struct taskqueue *queue, struct task *task); +void taskqueue_drain_all(struct taskqueue *queue); void taskqueue_drain_timeout(struct taskqueue *queue, struct timeout_task *timeout_task); void taskqueue_free(struct taskqueue *queue); From owner-svn-src-user@FreeBSD.ORG Wed Oct 19 13:11:51 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2996B1065742; Wed, 19 Oct 2011 13:11:51 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 003248FC1A; Wed, 19 Oct 2011 13:11:51 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9JDBoQp026181; Wed, 19 Oct 2011 13:11:50 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9JDBo7S026179; Wed, 19 Oct 2011 13:11:50 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110191311.p9JDBo7S026179@svn.freebsd.org> From: Adrian Chadd Date: Wed, 19 Oct 2011 13:11:50 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226543 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Oct 2011 13:11:51 -0000 Author: adrian Date: Wed Oct 19 13:11:50 2011 New Revision: 226543 URL: http://svn.freebsd.org/changeset/base/226543 Log: * Remove the locking around the channel set code (for now), as we can't hold the lock across where ath_rx_proc() will be called to properly drain the RX queue. * Split out the "drain txq" and "stop tx dma" code. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Wed Oct 19 12:16:19 2011 (r226542) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Wed Oct 19 13:11:50 2011 (r226543) @@ -4872,17 +4872,16 @@ ath_tx_stopdma(struct ath_softc *sc, str (void) ath_hal_stoptxdma(ah, txq->axq_qnum); } -/* - * Drain the transmit queues and reclaim resources. - */ -static void -ath_draintxq(struct ath_softc *sc, ATH_RESET_TYPE reset_type) +static int +ath_stoptxdma(struct ath_softc *sc) { struct ath_hal *ah = sc->sc_ah; - struct ifnet *ifp = sc->sc_ifp; int i; /* XXX return value */ + if (!sc->sc_invalid) + return 0; + if (!sc->sc_invalid) { /* don't touch the hardware if marked invalid */ DPRINTF(sc, ATH_DEBUG_RESET, "%s: tx queue [%u] %p, link %p\n", @@ -4894,6 +4893,22 @@ ath_draintxq(struct ath_softc *sc, ATH_R if (ATH_TXQ_SETUP(sc, i)) ath_tx_stopdma(sc, &sc->sc_txq[i]); } + + return 1; +} + +/* + * Drain the transmit queues and reclaim resources. + */ +static void +ath_draintxq(struct ath_softc *sc, ATH_RESET_TYPE reset_type) +{ + struct ath_hal *ah = sc->sc_ah; + struct ifnet *ifp = sc->sc_ifp; + int i; + + (void) ath_stoptxdma(sc); + for (i = 0; i < HAL_NUM_TX_QUEUES; i++) if (ATH_TXQ_SETUP(sc, i)) ath_tx_draintxq(sc, &sc->sc_txq[i]); @@ -5018,8 +5033,6 @@ ath_chan_set(struct ath_softc *sc, struc struct ieee80211com *ic = ifp->if_l2com; struct ath_hal *ah = sc->sc_ah; - ATH_LOCK_ASSERT(sc); - DPRINTF(sc, ATH_DEBUG_RESET, "%s: %u (%u MHz, flags 0x%x)\n", __func__, ieee80211_chan2ieee(ic, chan), chan->ic_freq, chan->ic_flags); @@ -5240,8 +5253,6 @@ ath_set_channel(struct ieee80211com *ic) struct ifnet *ifp = ic->ic_ifp; struct ath_softc *sc = ifp->if_softc; - ATH_LOCK(sc); - (void) ath_chan_set(sc, ic->ic_curchan); /* * If we are returning to our bss channel then mark state @@ -5251,8 +5262,6 @@ ath_set_channel(struct ieee80211com *ic) */ if (!sc->sc_scanning && ic->ic_curchan == ic->ic_bsschan) sc->sc_syncbeacon = 1; - - ATH_UNLOCK(sc); } /* From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 06:01:44 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id ED667106566C; Thu, 20 Oct 2011 06:01:44 +0000 (UTC) (envelope-from dougb@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8055A8FC17; Thu, 20 Oct 2011 06:01:44 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K61ibf059760; Thu, 20 Oct 2011 06:01:44 GMT (envelope-from dougb@svn.freebsd.org) Received: (from dougb@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K61inM059758; Thu, 20 Oct 2011 06:01:44 GMT (envelope-from dougb@svn.freebsd.org) Message-Id: <201110200601.p9K61inM059758@svn.freebsd.org> From: Doug Barton Date: Thu, 20 Oct 2011 06:01:44 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226555 - user/dougb/portmaster X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 06:01:45 -0000 Author: dougb Date: Thu Oct 20 06:01:44 2011 New Revision: 226555 URL: http://svn.freebsd.org/changeset/base/226555 Log: Improve the handling of the -F option with packages, especially with --packages-only: In update_port() do better at saying what we're launching a child to do In post_first_pass() make clear that we are fetch'ing, not building, installing, etc. In multiport() call check_fetch_only when we're done In the main body add fetch'ed ports to the CUR_DEPS list so that they are only fetched once. Modified: user/dougb/portmaster/portmaster Modified: user/dougb/portmaster/portmaster ============================================================================== --- user/dougb/portmaster/portmaster Wed Oct 19 23:48:15 2011 (r226554) +++ user/dougb/portmaster/portmaster Thu Oct 20 06:01:44 2011 (r226555) @@ -2260,14 +2260,18 @@ update_port () { if [ -n "$2" ]; then echo "===>>> Launching child to update $1 to $2" else - case "$1" in - */*) echo "===>>> Launching child to install ${1#$pd/}" ;; - *) if [ -z "$FETCH_ONLY" ]; then - echo "===>>> Launching child to reinstall $1" - else + if [ -z "$FETCH_ONLY" ]; then + case "$1" in + */*) echo "===>>> Launching child to install ${1#$pd/}" ;; + *) echo "===>>> Launching child to reinstall $1" ;; + esac + else + if [ "$PM_PACKAGES" != 'only' ]; then echo "===>>> Launching child to check distfiles for $1" - fi ;; - esac + else + echo "===>>> Launching child to check package files for $1" + fi + fi fi dep_of_deps=$(( $dep_of_deps + 1 )) @@ -2565,7 +2569,9 @@ post_first_pass () { [ "$PM_NEEDS_UPDATE" = ' ' ] && return action=build - if [ "$PM_PACKAGES" = only ]; then + if [ -n "$FETCH_ONLY" ]; then + action='fetch' + elif [ "$PM_PACKAGES" = only ]; then action=install elif [ -n "$PM_PACKAGES" ]; then action='build and/or install' @@ -2821,6 +2827,11 @@ multiport () { urb_update urb_update_after_build fi + if [ "$PM_PACKAGES" != 'only' ]; then + check_fetch_only + else + check_fetch_only Package + fi safe_exit } @@ -3668,6 +3679,8 @@ if [ -z "$PM_THOROUGH" -a -z "$NO_DEP_UP fi if [ -n "$FETCH_ONLY" ]; then # Only reached here if using packages + CUR_DEPS="${CUR_DEPS}${new_port}:${portdir}:" + if [ "$$" -eq "$PM_PARENT_PID" ]; then check_fetch_only Package else From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 06:25:57 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 982A3106566B; Thu, 20 Oct 2011 06:25:57 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6E2D78FC13; Thu, 20 Oct 2011 06:25:57 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K6Pvc6060571; Thu, 20 Oct 2011 06:25:57 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K6PvFs060569; Thu, 20 Oct 2011 06:25:57 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110200625.p9K6PvFs060569@svn.freebsd.org> From: Adrian Chadd Date: Thu, 20 Oct 2011 06:25:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226556 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 06:25:57 -0000 Author: adrian Date: Thu Oct 20 06:25:57 2011 New Revision: 226556 URL: http://svn.freebsd.org/changeset/base/226556 Log: make ath_tx_processq() again take a flag which states whether or not to run the software txq scheduler. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 06:01:44 2011 (r226555) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 06:25:57 2011 (r226556) @@ -4497,7 +4497,7 @@ ath_tx_update_ratectrl(struct ath_softc * particular task. */ static int -ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq) +ath_tx_processq(struct ath_softc *sc, struct ath_txq *txq, int dosched) { struct ath_hal *ah = sc->sc_ah; struct ath_buf *bf, *last; @@ -4624,9 +4624,11 @@ ath_tx_processq(struct ath_softc *sc, st #endif /* Kick the TXQ scheduler */ - ATH_TXQ_LOCK(txq); - ath_txq_sched(sc, txq); - ATH_TXQ_UNLOCK(txq); + if (dosched) { + ATH_TXQ_LOCK(txq); + ath_txq_sched(sc, txq); + ATH_TXQ_UNLOCK(txq); + } return nacked; } @@ -4649,11 +4651,11 @@ ath_tx_proc_q0(void *arg, int npending) sc->sc_txq_active &= ~txqs; ATH_UNLOCK(sc); - if (TXQACTIVE(txqs, 0) && ath_tx_processq(sc, &sc->sc_txq[0])) + if (TXQACTIVE(txqs, 0) && ath_tx_processq(sc, &sc->sc_txq[0], 1)) /* XXX why is lastrx updated in tx code? */ sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); if (TXQACTIVE(txqs, sc->sc_cabq->axq_qnum)) - ath_tx_processq(sc, sc->sc_cabq); + ath_tx_processq(sc, sc->sc_cabq, 1); ifp->if_drv_flags &= ~IFF_DRV_OACTIVE; sc->sc_wd_timer = 0; @@ -4685,15 +4687,15 @@ ath_tx_proc_q0123(void *arg, int npendin */ nacked = 0; if (TXQACTIVE(txqs, 0)) - nacked += ath_tx_processq(sc, &sc->sc_txq[0]); + nacked += ath_tx_processq(sc, &sc->sc_txq[0], 1); if (TXQACTIVE(txqs, 1)) - nacked += ath_tx_processq(sc, &sc->sc_txq[1]); + nacked += ath_tx_processq(sc, &sc->sc_txq[1], 1); if (TXQACTIVE(txqs, 2)) - nacked += ath_tx_processq(sc, &sc->sc_txq[2]); + nacked += ath_tx_processq(sc, &sc->sc_txq[2], 1); if (TXQACTIVE(txqs, 3)) - nacked += ath_tx_processq(sc, &sc->sc_txq[3]); + nacked += ath_tx_processq(sc, &sc->sc_txq[3], 1); if (TXQACTIVE(txqs, sc->sc_cabq->axq_qnum)) - ath_tx_processq(sc, sc->sc_cabq); + ath_tx_processq(sc, sc->sc_cabq, 1); if (nacked) sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); @@ -4728,7 +4730,7 @@ ath_tx_proc(void *arg, int npending) nacked = 0; for (i = 0; i < HAL_NUM_TX_QUEUES; i++) if (ATH_TXQ_SETUP(sc, i) && TXQACTIVE(txqs, i)) - nacked += ath_tx_processq(sc, &sc->sc_txq[i]); + nacked += ath_tx_processq(sc, &sc->sc_txq[i], 1); if (nacked) sc->sc_lastrx = ath_hal_gettsf64(sc->sc_ah); From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 06:56:00 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 096F0106566B; Thu, 20 Oct 2011 06:56:00 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id ED14C8FC13; Thu, 20 Oct 2011 06:55:59 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K6txEk061509; Thu, 20 Oct 2011 06:55:59 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K6txKh061507; Thu, 20 Oct 2011 06:55:59 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110200655.p9K6txKh061507@svn.freebsd.org> From: Adrian Chadd Date: Thu, 20 Oct 2011 06:55:59 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226557 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 06:56:00 -0000 Author: adrian Date: Thu Oct 20 06:55:59 2011 New Revision: 226557 URL: http://svn.freebsd.org/changeset/base/226557 Log: Push the task enqueue further down. This fixes some strange bugs I've been seeing where txq hangs occur. I dunno why; the taskqueue shouldn't cause a thread preemption to occur. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 06:25:57 2011 (r226556) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 06:55:59 2011 (r226557) @@ -1478,8 +1478,6 @@ ath_intr(void *arg) } if (status & HAL_INT_TX) { sc->sc_stats.ast_tx_intr++; - taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask); - /* * Grab all the currently set bits in the HAL txq bitmap * and blank them. This is the only place we should be @@ -1490,6 +1488,7 @@ ath_intr(void *arg) ath_hal_gettxintrtxqs(sc->sc_ah, &txqs); sc->sc_txq_active |= txqs; ATH_UNLOCK(sc); + taskqueue_enqueue_fast(sc->sc_tq, &sc->sc_txtask); } if (status & HAL_INT_BMISS) { sc->sc_stats.ast_bmiss++; From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 07:24:34 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5EA2B106566C; Thu, 20 Oct 2011 07:24:34 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 4DFC38FC15; Thu, 20 Oct 2011 07:24:34 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K7OYFF062458; Thu, 20 Oct 2011 07:24:34 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K7OYmI062456; Thu, 20 Oct 2011 07:24:34 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110200724.p9K7OYmI062456@svn.freebsd.org> From: Adrian Chadd Date: Thu, 20 Oct 2011 07:24:34 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226558 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 07:24:34 -0000 Author: adrian Date: Thu Oct 20 07:24:33 2011 New Revision: 226558 URL: http://svn.freebsd.org/changeset/base/226558 Log: Re-add this locking for now, just so I don't have to undo the locking I've added around ath_reset() and ath_reset_locked(). This fixes the panic I was seeing in ath_startrecv(). Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 06:55:59 2011 (r226557) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 07:24:33 2011 (r226558) @@ -5011,6 +5011,7 @@ ath_chan_change(struct ath_softc *sc, st { enum ieee80211_phymode mode; + ATH_LOCK(sc); /* * Change channels and update the h/w rate map * if we're switching; e.g. 11a to 11b/g. @@ -5019,6 +5020,7 @@ ath_chan_change(struct ath_softc *sc, st if (mode != sc->sc_curmode) ath_setcurmode(sc, mode); sc->sc_curchan = chan; + ATH_UNLOCK(sc); } /* From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 07:53:16 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 469B3106576A; Thu, 20 Oct 2011 07:53:16 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 2D8108FC0C; Thu, 20 Oct 2011 07:53:16 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K7rGSV063380; Thu, 20 Oct 2011 07:53:16 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K7rGDk063377; Thu, 20 Oct 2011 07:53:16 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110200753.p9K7rGDk063377@svn.freebsd.org> From: Adrian Chadd Date: Thu, 20 Oct 2011 07:53:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226559 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 07:53:16 -0000 Author: adrian Date: Thu Oct 20 07:53:15 2011 New Revision: 226559 URL: http://svn.freebsd.org/changeset/base/226559 Log: Begin undoing the ath_reset() / ath_reset_locked() code. I can't hold locks here across the net80211 input routines or things will get somewhat messy. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c user/adrian/if_ath_tx/sys/dev/ath/if_ath_misc.h Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 07:24:33 2011 (r226558) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 07:53:15 2011 (r226559) @@ -1811,18 +1811,6 @@ ath_stop(struct ifnet *ifp) ATH_UNLOCK(sc); } -int -ath_reset(struct ifnet *ifp, ATH_RESET_TYPE reset_type) -{ - int r; - - struct ath_softc *sc = ifp->if_softc; - - ATH_LOCK(sc); - r = ath_reset_locked(ifp, reset_type); - ATH_UNLOCK(sc); - return r; -} /* * Reset the hardware w/o losing operational state. This is * basically a more efficient way of doing ath_stop, ath_init, @@ -1831,15 +1819,13 @@ ath_reset(struct ifnet *ifp, ATH_RESET_T * to reset or reload hardware state. */ int -ath_reset_locked(struct ifnet *ifp, ATH_RESET_TYPE reset_type) +ath_reset(struct ifnet *ifp, ATH_RESET_TYPE reset_type) { struct ath_softc *sc = ifp->if_softc; struct ieee80211com *ic = ifp->if_l2com; struct ath_hal *ah = sc->sc_ah; HAL_STATUS status; - ATH_LOCK_ASSERT(sc); - DPRINTF(sc, ATH_DEBUG_RESET, "%s: called\n", __func__); ath_hal_intrset(ah, 0); /* disable interrupts */ @@ -4981,8 +4967,6 @@ ath_startrecv(struct ath_softc *sc) struct ath_hal *ah = sc->sc_ah; struct ath_buf *bf; - ATH_LOCK_ASSERT(sc); - sc->sc_rxlink = NULL; sc->sc_rxpending = NULL; TAILQ_FOREACH(bf, &sc->sc_rxbuf, bf_list) { @@ -5011,7 +4995,6 @@ ath_chan_change(struct ath_softc *sc, st { enum ieee80211_phymode mode; - ATH_LOCK(sc); /* * Change channels and update the h/w rate map * if we're switching; e.g. 11a to 11b/g. @@ -5020,7 +5003,6 @@ ath_chan_change(struct ath_softc *sc, st if (mode != sc->sc_curmode) ath_setcurmode(sc, mode); sc->sc_curchan = chan; - ATH_UNLOCK(sc); } /* @@ -5138,7 +5120,7 @@ ath_calibrate(void *arg) DPRINTF(sc, ATH_DEBUG_CALIBRATE, "%s: rfgain change\n", __func__); sc->sc_stats.ast_per_rfgain++; - ath_reset_locked(ifp, ATH_RESET_NOLOSS); + ath_reset(ifp, ATH_RESET_NOLOSS); } /* * If this long cal is after an idle period, then @@ -5804,7 +5786,7 @@ ath_watchdog(void *arg) hangs & 0xff ? "bb" : "mac", hangs); } else if_printf(ifp, "device timeout\n"); - ath_reset_locked(ifp, ATH_RESET_NOLOSS); + ath_reset(ifp, ATH_RESET_NOLOSS); ifp->if_oerrors++; sc->sc_stats.ast_watchdog++; } Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath_misc.h ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath_misc.h Thu Oct 20 07:24:33 2011 (r226558) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath_misc.h Thu Oct 20 07:53:15 2011 (r226559) @@ -57,7 +57,6 @@ extern struct ath_buf * ath_buf_clone(st extern void ath_freebuf(struct ath_softc *sc, struct ath_buf *bf); extern int ath_reset(struct ifnet *, ATH_RESET_TYPE); -extern int ath_reset_locked(struct ifnet *, ATH_RESET_TYPE); extern void ath_tx_draintxq(struct ath_softc *sc, struct ath_txq *txq); extern void ath_tx_default_comp(struct ath_softc *sc, struct ath_buf *bf, int fail); From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 09:46:47 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8C77B1065677; Thu, 20 Oct 2011 09:46:47 +0000 (UTC) (envelope-from adrian@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 627148FC0C; Thu, 20 Oct 2011 09:46:47 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K9klfS066899; Thu, 20 Oct 2011 09:46:47 GMT (envelope-from adrian@svn.freebsd.org) Received: (from adrian@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K9klSR066896; Thu, 20 Oct 2011 09:46:47 GMT (envelope-from adrian@svn.freebsd.org) Message-Id: <201110200946.p9K9klSR066896@svn.freebsd.org> From: Adrian Chadd Date: Thu, 20 Oct 2011 09:46:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226560 - user/adrian/if_ath_tx/sys/dev/ath X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 09:46:47 -0000 Author: adrian Date: Thu Oct 20 09:46:47 2011 New Revision: 226560 URL: http://svn.freebsd.org/changeset/base/226560 Log: Track whether the driver is in reset or not. Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Modified: user/adrian/if_ath_tx/sys/dev/ath/if_ath.c ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 07:53:15 2011 (r226559) +++ user/adrian/if_ath_tx/sys/dev/ath/if_ath.c Thu Oct 20 09:46:47 2011 (r226560) @@ -1828,6 +1828,10 @@ ath_reset(struct ifnet *ifp, ATH_RESET_T DPRINTF(sc, ATH_DEBUG_RESET, "%s: called\n", __func__); + ATH_LOCK(sc); + sc->sc_in_reset++; + ATH_UNLOCK(sc); + ath_hal_intrset(ah, 0); /* disable interrupts */ ath_draintxq(sc, reset_type); /* stop xmit side */ /* @@ -1864,6 +1868,10 @@ ath_reset(struct ifnet *ifp, ATH_RESET_T } ath_hal_intrset(ah, sc->sc_imask); + ATH_LOCK(sc); + sc->sc_in_reset--; + ATH_UNLOCK(sc); + ath_start(ifp); /* restart xmit */ return 0; } @@ -5238,6 +5246,11 @@ ath_set_channel(struct ieee80211com *ic) struct ifnet *ifp = ic->ic_ifp; struct ath_softc *sc = ifp->if_softc; + /* This isn't strictly a reset, but we still have to drain */ + ATH_LOCK(sc); + sc->sc_in_reset++; + ATH_UNLOCK(sc); + (void) ath_chan_set(sc, ic->ic_curchan); /* * If we are returning to our bss channel then mark state @@ -5247,6 +5260,10 @@ ath_set_channel(struct ieee80211com *ic) */ if (!sc->sc_scanning && ic->ic_curchan == ic->ic_bsschan) sc->sc_syncbeacon = 1; + + ATH_LOCK(sc); + sc->sc_in_reset--; + ATH_UNLOCK(sc); } /* Modified: user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h ============================================================================== --- user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Thu Oct 20 07:53:15 2011 (r226559) +++ user/adrian/if_ath_tx/sys/dev/ath/if_athvar.h Thu Oct 20 09:46:47 2011 (r226560) @@ -434,6 +434,7 @@ struct ath_softc { */ uint32_t sc_txq_active; /* bitmap of active TXQs */ uint32_t sc_kickpcu; /* whether to kick the PCU */ + uint32_t sc_in_reset; /* currently reset/chan change */ u_int sc_keymax; /* size of key cache */ u_int8_t sc_keymap[ATH_KEYBYTES];/* key use bit map */ From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 09:53:20 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6D943106564A; Thu, 20 Oct 2011 09:53:20 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 5CFB78FC0A; Thu, 20 Oct 2011 09:53:20 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K9rKh4067126; Thu, 20 Oct 2011 09:53:20 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K9rKcT067124; Thu, 20 Oct 2011 09:53:20 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110200953.p9K9rKcT067124@svn.freebsd.org> From: Gabor Kovesdan Date: Thu, 20 Oct 2011 09:53:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226561 - user/gabor/tre-integration/tools/test/regex/sgrep X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 09:53:20 -0000 Author: gabor Date: Thu Oct 20 09:53:20 2011 New Revision: 226561 URL: http://svn.freebsd.org/changeset/base/226561 Log: - Add -N for REG_NEWLINE - style(9) Modified: user/gabor/tre-integration/tools/test/regex/sgrep/sgrep.c Modified: user/gabor/tre-integration/tools/test/regex/sgrep/sgrep.c ============================================================================== --- user/gabor/tre-integration/tools/test/regex/sgrep/sgrep.c Thu Oct 20 09:46:47 2011 (r226560) +++ user/gabor/tre-integration/tools/test/regex/sgrep/sgrep.c Thu Oct 20 09:53:20 2011 (r226561) @@ -100,11 +100,8 @@ grep_tree(char **argv) while ((p = fts_read(fts)) != NULL) switch (p->fts_info) { case FTS_DNR: - /* FALLTHROUGH */ case FTS_ERR: - /* FALLTHROUGH */ case FTS_D: - /* FALLTHROUGH */ case FTS_DP: /* FALLTHROUGH */ case FTS_DC: @@ -158,7 +155,7 @@ main(int argc, char *argv[]) cflags = REG_NEWLINE; eflags = REG_STARTEND; - while (((c = getopt(argc, argv, "e:EFr")) != -1)) + while (((c = getopt(argc, argv, "e:EFNr")) != -1)) switch (c) { case 'e': pat = strdup(optarg); @@ -170,6 +167,9 @@ main(int argc, char *argv[]) case 'F': cflags |= REG_NOSPEC; break; + case 'N': + cflags |= REG_NEWLINE; + break; case 'r': dir = true; } From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 09:55:21 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C2F0A106564A; Thu, 20 Oct 2011 09:55:21 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id B17FE8FC0A; Thu, 20 Oct 2011 09:55:21 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K9tLWk067235; Thu, 20 Oct 2011 09:55:21 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K9tLq3067230; Thu, 20 Oct 2011 09:55:21 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110200955.p9K9tLq3067230@svn.freebsd.org> From: Gabor Kovesdan Date: Thu, 20 Oct 2011 09:55:21 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226562 - user/gabor/tre-integration/usr.bin/grep X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 09:55:21 -0000 Author: gabor Date: Thu Oct 20 09:55:21 2011 New Revision: 226562 URL: http://svn.freebsd.org/changeset/base/226562 Log: - Manual fixes after merge Modified: user/gabor/tre-integration/usr.bin/grep/file.c user/gabor/tre-integration/usr.bin/grep/grep.c user/gabor/tre-integration/usr.bin/grep/grep.h user/gabor/tre-integration/usr.bin/grep/util.c Modified: user/gabor/tre-integration/usr.bin/grep/file.c ============================================================================== --- user/gabor/tre-integration/usr.bin/grep/file.c Thu Oct 20 09:53:20 2011 (r226561) +++ user/gabor/tre-integration/usr.bin/grep/file.c Thu Oct 20 09:55:21 2011 (r226562) @@ -38,7 +38,6 @@ __FBSDID("$FreeBSD$"); #include #include -#include #include #include #include @@ -51,14 +50,20 @@ __FBSDID("$FreeBSD$"); #include #include +#ifndef WITHOUT_BZIP2 +#include +#endif + #include "grep.h" #define MAXBUFSIZ (32 * 1024) #define LNBUFBUMP 80 static gzFile gzbufdesc; -static BZFILE* bzbufdesc; static lzma_stream lstrm = LZMA_STREAM_INIT; +#ifndef WITHOUT_BZIP2 +static BZFILE* bzbufdesc; +#endif static unsigned char *buffer; static unsigned char *bufpos; @@ -72,7 +77,6 @@ static inline int grep_refill(struct file *f) { ssize_t nr; - int bzerr; if (filebehave == FILE_MMAP) return (0); @@ -80,9 +84,12 @@ grep_refill(struct file *f) bufpos = buffer; bufrem = 0; - if (filebehave == FILE_GZIP) + if (filebehave == FILE_GZIP) { nr = gzread(gzbufdesc, buffer, MAXBUFSIZ); - else if (filebehave == FILE_BZIP && bzbufdesc != NULL) { +#ifndef WITHOUT_BZIP2 + } else if (filebehave == FILE_BZIP && bzbufdesc != NULL) { + int bzerr; + nr = BZ2_bzRead(&bzerr, bzbufdesc, buffer, MAXBUFSIZ); switch (bzerr) { case BZ_OK: @@ -108,6 +115,7 @@ grep_refill(struct file *f) /* Make sure we exit with an error */ nr = -1; } +#endif } else if ((filebehave == FILE_XZ) || (filebehave == FILE_LZMA)) { lzma_action action = LZMA_RUN; uint8_t in_buf[MAXBUFSIZ]; @@ -271,9 +279,11 @@ grep_open(const char *path) (gzbufdesc = gzdopen(f->fd, "r")) == NULL) goto error2; +#ifndef WITHOUT_BZIP2 if (filebehave == FILE_BZIP && (bzbufdesc = BZ2_bzdopen(f->fd, "r")) == NULL) goto error2; +#endif /* Fill read buffer, also catches errors early */ if (bufrem == 0 && grep_refill(f) != 0) Modified: user/gabor/tre-integration/usr.bin/grep/grep.c ============================================================================== --- user/gabor/tre-integration/usr.bin/grep/grep.c Thu Oct 20 09:53:20 2011 (r226561) +++ user/gabor/tre-integration/usr.bin/grep/grep.c Thu Oct 20 09:55:21 2011 (r226562) @@ -147,15 +147,13 @@ bool prev; /* flag whether or not the int tail; /* lines left to print */ bool notfound; /* file not found */ -extern char *__progname; - /* * Prints usage information and returns 2. */ static void usage(void) { - fprintf(stderr, getstr(4), __progname); + fprintf(stderr, getstr(4), getprogname()); fprintf(stderr, "%s", getstr(5)); fprintf(stderr, "%s", getstr(5)); fprintf(stderr, "%s", getstr(6)); @@ -329,7 +327,8 @@ int main(int argc, char *argv[]) { char **aargv, **eargv, *eopts; - char *pn, *ep; + char *ep; + const char *pn; unsigned long long l; unsigned int aargc, eargc, i; int c, lastc, needpattern, newarg, prevoptind; @@ -343,7 +342,7 @@ main(int argc, char *argv[]) /* Check what is the program name of the binary. In this way we can have all the funcionalities in one binary without the need of scripting and using ugly hacks. */ - pn = __progname; + pn = getprogname(); if (pn[0] == 'b' && pn[1] == 'z') { filebehave = FILE_BZIP; pn += 2; @@ -505,6 +504,10 @@ main(int argc, char *argv[]) cflags |= REG_ICASE; break; case 'J': +#ifdef WITHOUT_BZIP2 + errno = EOPNOTSUPP; + err(2, "bzip2 support was disabled at compile-time"); +#endif filebehave = FILE_BZIP; break; case 'L': @@ -565,7 +568,7 @@ main(int argc, char *argv[]) filebehave = FILE_MMAP; break; case 'V': - printf(getstr(9), __progname, VERSION); + printf(getstr(9), getprogname(), VERSION); exit(0); case 'v': vflag = true; @@ -684,7 +687,6 @@ main(int argc, char *argv[]) /* Check if cheating is allowed (always is for fgrep). */ for (i = 0; i < patterns; ++i) { - /* Fall back to full regex library */ c = regcomp(&r_pattern[i], pattern[i].pat, cflags); if (c != 0) { regerror(c, &r_pattern[i], re_error, Modified: user/gabor/tre-integration/usr.bin/grep/grep.h ============================================================================== --- user/gabor/tre-integration/usr.bin/grep/grep.h Thu Oct 20 09:53:20 2011 (r226561) +++ user/gabor/tre-integration/usr.bin/grep/grep.h Thu Oct 20 09:55:21 2011 (r226562) @@ -120,7 +120,7 @@ extern int binbehave, devbehave, dirbeh extern bool first, matchall, notfound, prev; extern int tail; extern unsigned int dpatterns, fpatterns, patterns; -extern struct pat *pattern; +extern struct pat *pattern; extern struct epat *dpattern, *fpattern; extern regex_t *er_pattern, *r_pattern; Modified: user/gabor/tre-integration/usr.bin/grep/util.c ============================================================================== --- user/gabor/tre-integration/usr.bin/grep/util.c Thu Oct 20 09:53:20 2011 (r226561) +++ user/gabor/tre-integration/usr.bin/grep/util.c Thu Oct 20 09:55:21 2011 (r226562) @@ -232,7 +232,7 @@ procfile(const char *fn) linesqueued++; } c += t; - if (mflag && mcount < 0) + if (mflag && mcount <= 0) break; } if (Bflag > 0) @@ -280,58 +280,21 @@ procline(struct str *l, int nottext) pmatch.rm_so = st; pmatch.rm_eo = l->len; - /* Loop to compare with all the patterns */ - for (i = 0; i < patterns; i++) { - r = regexec(&r_pattern[i], l->dat, 1, - &pmatch, eflags); - r = (r == 0) ? 0 : REG_NOMATCH; - st = pmatch.rm_eo; - st = (cflags & REG_NOSUB) - ? (size_t)l->len - : (size_t)pmatch.rm_eo; - if (r == REG_NOMATCH) - continue; - /* Check for full match */ - if (r == 0 && xflag) - if (pmatch.rm_so != 0 || - (size_t)pmatch.rm_eo != l->len) - r = REG_NOMATCH; - if (r == 0) { - if (m == 0) - c++; - if (m < MAX_LINE_MATCHES) - matches[m++] = pmatch; - /* matches - skip further patterns */ - if ((color == NULL && !oflag) || - qflag || lflag) - break; - } - /* Loop to compare with all the patterns */ - for (i = 0; i < patterns; i++) { - r = regexec(&r_pattern[i], l->dat, 1, - &pmatch, eflags); - r = (r == 0) ? 0 : REG_NOMATCH; - st = (cflags & REG_NOSUB) - ? (size_t)l->len - : (size_t)pmatch.rm_eo; - if (r == REG_NOMATCH) - continue; - /* Check for full match */ - if (r == 0 && xflag) - if (pmatch.rm_so != 0 || - (size_t)pmatch.rm_eo != l->len) - r = REG_NOMATCH; - if (r == 0) { - if (m == 0) - c++; - if (m < MAX_LINE_MATCHES) - matches[m++] = pmatch; - /* matches - skip further patterns */ - if ((color == NULL && !oflag) || - qflag || lflag) - break; - } - } + /* Loop to compare with all the patterns */ + for (i = 0; i < patterns; i++) { + r = regexec(&r_pattern[i], l->dat, 1, + &pmatch, eflags); + r = (r == 0) ? 0 : REG_NOMATCH; + st = (cflags & REG_NOSUB) + ? (size_t)l->len + : (size_t)pmatch.rm_eo; + if (r == REG_NOMATCH) + continue; + /* Check for full match */ + if (r == 0 && xflag) + if (pmatch.rm_so != 0 || + (size_t)pmatch.rm_eo != l->len) + r = REG_NOMATCH; if (r == 0) { if (m == 0) c++; From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 09:57:28 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 42029106568A; Thu, 20 Oct 2011 09:57:28 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 318958FC12; Thu, 20 Oct 2011 09:57:28 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9K9vSsS067337; Thu, 20 Oct 2011 09:57:28 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9K9vScU067335; Thu, 20 Oct 2011 09:57:28 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110200957.p9K9vScU067335@svn.freebsd.org> From: Gabor Kovesdan Date: Thu, 20 Oct 2011 09:57:28 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226563 - user/gabor/tre-integration/contrib/tre/lib X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 09:57:28 -0000 Author: gabor Date: Thu Oct 20 09:57:27 2011 New Revision: 226563 URL: http://svn.freebsd.org/changeset/base/226563 Log: - Minor fixes Modified: user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c Modified: user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c Thu Oct 20 09:55:21 2011 (r226562) +++ user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c Thu Oct 20 09:57:27 2011 (r226563) @@ -140,6 +140,7 @@ tre_compile_heur(heur_t *h, const tre_ch * Process the pattern char-by-char. * * i: position in regex + * j: number of fragment * st: start offset of current segment (fixed-length fragment) * to be processed * pos: current position (and length) in the temporary space where @@ -331,8 +332,8 @@ end_segment: errcode = REG_ESPACE; goto err; } - memcpy(&arr[j], &heur, pos); - arr[j][pos] = TRE_CHAR('\0'); + heur[pos] = TRE_CHAR('\0'); + memcpy(arr[j], heur, (pos + 1) * sizeof(tre_char_t)); length[j] = pos; j++; pos = 0; @@ -344,7 +345,7 @@ ok: size_t m = 1; int ret; - for(int i = 1; i < j; i++) + for (int i = 1; i < j; i++) m = (length[i] > length[m]) ? i : m; if (!h->heurs) @@ -363,11 +364,11 @@ ok: } } -#define CHECK_ERR - if (ret != REG_OK) - { - errcode = REG_BADPAT; - goto err2; +#define CHECK_ERR \ + if (ret != REG_OK) \ + { \ + errcode = REG_BADPAT; \ + goto err2; \ } ret = tre_compile_fast(h->heurs[0], arr[0], length[0], 0); @@ -381,7 +382,7 @@ ok: else ret = tre_compile_fast(h->heurs[1], arr[m], length[m], 0); CHECK_ERR - if (h->prefix) + if (h->prefix || (m == j - 1)) { xfree(h->heurs[2]); h->heurs[2] = NULL; From owner-svn-src-user@FreeBSD.ORG Thu Oct 20 22:38:24 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B015F1065670; Thu, 20 Oct 2011 22:38:24 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 9F4708FC0A; Thu, 20 Oct 2011 22:38:24 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9KMcO9v094813; Thu, 20 Oct 2011 22:38:24 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9KMcOu6094809; Thu, 20 Oct 2011 22:38:24 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110202238.p9KMcOu6094809@svn.freebsd.org> From: Gabor Kovesdan Date: Thu, 20 Oct 2011 22:38:24 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226590 - user/gabor/tre-integration/contrib/tre/lib X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Oct 2011 22:38:24 -0000 Author: gabor Date: Thu Oct 20 22:38:24 2011 New Revision: 226590 URL: http://svn.freebsd.org/changeset/base/226590 Log: - Fix return value in heuristic compiler - Implement longest fragment heuristic for REG_NEWLINE behavior Modified: user/gabor/tre-integration/contrib/tre/lib/regexec.c user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.h Modified: user/gabor/tre-integration/contrib/tre/lib/regexec.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/regexec.c Thu Oct 20 21:49:26 2011 (r226589) +++ user/gabor/tre-integration/contrib/tre/lib/regexec.c Thu Oct 20 22:38:24 2011 (r226590) @@ -165,10 +165,10 @@ tre_match(const tre_tnfa_t *tnfa, const pmatch, eflags); } -#define FIX_OFFSETS \ +#define FIX_OFFSETS(adj) \ if (ret == REG_NOMATCH) \ { \ - st += n; \ + adj; \ continue; \ } \ else if ((ret == REG_OK) && !(tnfa->cflags & REG_NOSUB)) \ @@ -191,57 +191,94 @@ tre_match(const tre_tnfa_t *tnfa, const const char *data_byte = string; const tre_char_t *data_wide = string; - DPRINT(("tre_match: using a heuristic [%s/%s] to speed up the " - "search\n", heur->start->pattern, heur->end->pattern)); - - while (st < len) + if (heur->type == HEUR_LONGEST) { - SEEK_TO(st); - - /* Prefix heuristic */ - ret = tre_match_fast(heur->heurs[0], string, len - st, type, nmatch, - pmatch, eflags); - if (ret != REG_OK) - return ret; - st += pmatch[0].rm_so; - n = pmatch[0].rm_eo; - - /* Intermediate heuristics */ - while (!((heur->heurs[i] == NULL) || - (heur->prefix && heur->heurs[i + 1] == NULL))) + while (st < len) { - SEEK_TO(st + n); - ret = tre_match_fast(heur->heurs[i], string, len - st - n, type, - nmatch, pmatch, eflags); - if (ret != REG_OK) - return ret; - n += pmatch[0].rm_eo; - i++; - } + size_t eo, so; - /* Suffix heuristic available */ - if (heur->prefix && heur->heurs[i] != NULL) - { - SEEK_TO(st + n); - ret = tre_match_fast(heur->heurs[i], string, len - st - n, type, - nmatch, pmatch, eflags); + SEEK_TO(st); + ret = tre_match_fast(heur->heurs[0], string, len - st, type, nmatch, + pmatch, eflags); if (ret != REG_OK) return ret; - n += pmatch[0].rm_eo; - SEEK_TO(st); - ret = tre_match(tnfa, string, n, type, nmatch, pmatch, - eflags, NULL, NULL); - FIX_OFFSETS; - } - /* Suffix heuristic not available */ - else + for (so = st + pmatch[0].rm_so - 1; ; so--) + { + if ((type == STR_WIDE) ? (data_wide[so] == TRE_CHAR('\n')) : + (data_byte[so] == '\n')) + break; + if (so == 0) + break; + } + + for (eo = st + pmatch[0].rm_eo; st + eo < len; eo++) + { + if ((type == STR_WIDE) ? (data_wide[eo] == TRE_CHAR('\n')) : + (data_byte[eo] == '\n')) + break; + } + + SEEK_TO(so); + ret = tre_match(tnfa, string, eo - so, type, nmatch, pmatch, eflags, NULL, NULL); + FIX_OFFSETS(st = eo); + + } + return REG_NOMATCH; + } + else + { + while (st < len) { SEEK_TO(st); - ret = tre_match(tnfa, string, len - st, type, nmatch, pmatch, - eflags, NULL, NULL); - FIX_OFFSETS; - } + + /* Prefix heuristic */ + ret = tre_match_fast(heur->heurs[0], string, len - st, + type, nmatch, pmatch, eflags); + if (ret != REG_OK) + return ret; + st += pmatch[0].rm_so; + n = pmatch[0].rm_eo; + + /* Intermediate heuristics */ + while (!((heur->heurs[i] == NULL) || + ((heur->type == HEUR_PREFIX_ARRAY) && + heur->heurs[i + 1] == NULL))) + { + SEEK_TO(st + n); + ret = tre_match_fast(heur->heurs[i], string, len - st - n, + type, nmatch, pmatch, eflags); + if (ret != REG_OK) + return ret; + n += pmatch[0].rm_eo; + i++; + } + + /* Suffix heuristic available */ + if ((heur->type == HEUR_ARRAY) && heur->heurs[i] != NULL) + { + SEEK_TO(st + n); + ret = tre_match_fast(heur->heurs[i], string, len - st - n, + type, nmatch, pmatch, eflags); + if (ret != REG_OK) + return ret; + n += pmatch[0].rm_eo; + + SEEK_TO(st); + ret = tre_match(tnfa, string, n, type, nmatch, pmatch, + eflags, NULL, NULL); + FIX_OFFSETS(st += n); + } + /* Suffix heuristic not available */ + else + { + SEEK_TO(st); + ret = tre_match(tnfa, string, len - st, type, nmatch, + pmatch, eflags, NULL, NULL); + FIX_OFFSETS(st += n); + } + } + return REG_NOMATCH; } } Modified: user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c Thu Oct 20 21:49:26 2011 (r226589) +++ user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c Thu Oct 20 22:38:24 2011 (r226590) @@ -133,6 +133,8 @@ tre_compile_heur(heur_t *h, const tre_ch if (!heur) return REG_ESPACE; + h->type = HEUR_ARRAY; + while (true) { @@ -316,7 +318,7 @@ end_segment: errcode = REG_BADPAT; goto err; } - h->prefix = true; + h->type = HEUR_PREFIX_ARRAY; goto ok; } @@ -340,7 +342,6 @@ end_segment: } ok: - { size_t m = 1; int ret; @@ -348,12 +349,6 @@ ok: for (int i = 1; i < j; i++) m = (length[i] > length[m]) ? i : m; - if (!h->heurs) - { - errcode = REG_ESPACE; - goto err; - } - for (int i = 0; i < MIN(3, j + 1); i++) { h->heurs[i] = xmalloc(sizeof(fastmatch_t)); @@ -371,30 +366,41 @@ ok: goto err2; \ } - ret = tre_compile_fast(h->heurs[0], arr[0], length[0], 0); - CHECK_ERR - if (j == 1) + if (cflags & REG_NEWLINE) { - xfree(h->heurs[1]); - h->heurs[1] = NULL; - goto finish; + ret = tre_compile_fast(h->heurs[0], arr[m], length[m], 0); + CHECK_ERR + h->type = HEUR_LONGEST; } else - ret = tre_compile_fast(h->heurs[1], arr[m], length[m], 0); - CHECK_ERR - if (h->prefix || (m == j - 1)) { - xfree(h->heurs[2]); - h->heurs[2] = NULL; - goto finish; + ret = tre_compile_fast(h->heurs[0], arr[0], length[0], 0); + CHECK_ERR + if (j == 1) + { + free(h->heurs[1]); + h->heurs[1] = NULL; + errcode = REG_OK; + goto finish; + } + else + ret = tre_compile_fast(h->heurs[1], arr[m], length[m], 0); + CHECK_ERR + if ((h->type == HEUR_PREFIX_ARRAY) || (m == j - 1)) + { + xfree(h->heurs[2]); + h->heurs[2] = NULL; + errcode = REG_OK; + goto finish; + } + else + ret = tre_compile_fast(h->heurs[2], arr[j - 1], length[j - 1], 0); + CHECK_ERR + h->heurs[3] = NULL; } - else - ret = tre_compile_fast(h->heurs[2], arr[j - 1], length[j - 1], 0); - CHECK_ERR - h->heurs[3] = NULL; - errcode = REG_OK; - goto finish; + errcode = REG_OK; + goto finish; } err2: Modified: user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.h ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.h Thu Oct 20 21:49:26 2011 (r226589) +++ user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.h Thu Oct 20 22:38:24 2011 (r226590) @@ -7,10 +7,13 @@ #include "tre-fastmatch.h" #include "tre-internal.h" +#define HEUR_ARRAY 0 +#define HEUR_PREFIX_ARRAY 1 +#define HEUR_LONGEST 2 + typedef struct { fastmatch_t *heurs[4]; - bool prefix; - bool newline; + int type; } heur_t; extern int tre_compile_heur(heur_t *h, const tre_char_t *regex, From owner-svn-src-user@FreeBSD.ORG Sat Oct 22 09:38:03 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9BC8D106566B; Sat, 22 Oct 2011 09:38:03 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 8B7A68FC0C; Sat, 22 Oct 2011 09:38:03 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9M9c3oh071157; Sat, 22 Oct 2011 09:38:03 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9M9c3tH071154; Sat, 22 Oct 2011 09:38:03 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110220938.p9M9c3tH071154@svn.freebsd.org> From: Gabor Kovesdan Date: Sat, 22 Oct 2011 09:38:03 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226627 - user/gabor/tre-integration/contrib/tre/lib X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Oct 2011 09:38:03 -0000 Author: gabor Date: Sat Oct 22 09:38:03 2011 New Revision: 226627 URL: http://svn.freebsd.org/changeset/base/226627 Log: - Drop dots from heuristics because they decrease efficiency - Count pattern length for future usage Modified: user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.h Modified: user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c Sat Oct 22 09:29:44 2011 (r226626) +++ user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.c Sat Oct 22 09:38:03 2011 (r226627) @@ -97,24 +97,26 @@ /* * Finishes a segment (fixed-length text fragment). */ -#define END_SEGMENT \ +#define END_SEGMENT(varlen) \ do \ { \ + if (varlen) \ + tlen = -1; \ st = i + 1; \ escaped = false; \ goto end_segment; \ } while (0) -#define STORE_CHAR(esc) \ +#define STORE_CHAR \ do \ { \ - if (esc) \ - heur[pos++] = TRE_CHAR('\\'); \ heur[pos++] = regex[i]; \ escaped = false; \ + tlen = (tlen == -1) ? -1 : tlen + 1; \ continue; \ } while (0) +#define DEC_POS pos = (pos == 0) ? 0 : pos - 1; /* * Parses a regular expression and constructs a heuristic in heur_t and @@ -126,6 +128,7 @@ tre_compile_heur(heur_t *h, const tre_ch { tre_char_t *arr[MAX_FRAGMENTS], *heur; size_t length[MAX_FRAGMENTS]; + ssize_t tlen = 0; int errcode, j = 0, pos = 0, st = 0; bool escaped = false; @@ -154,17 +157,17 @@ tre_compile_heur(heur_t *h, const tre_ch { /* - * Bracketed expression is substituted with a dot or the + * Bracketed expression ends the segment or the * brackets are treated as normal if at least the opening * bracket is escaped. */ case TRE_CHAR('['): if (escaped) - STORE_CHAR(true); + STORE_CHAR; else { PARSE_BRACKETS; - heur[pos++] = TRE_CHAR('.'); + END_SEGMENT(true); } continue; @@ -175,20 +178,20 @@ tre_compile_heur(heur_t *h, const tre_ch */ case TRE_CHAR('{'): if (escaped && (i == 1)) - STORE_CHAR(true); + STORE_CHAR; else if ((i == 0) && !(cflags & REG_EXTENDED)) - STORE_CHAR(true); + STORE_CHAR; else if ((i == 0) && (cflags & REG_EXTENDED)) continue; PARSE_UNIT('{', '}'); if (escaped ^ (cflags & REG_EXTENDED)) { - pos--; - END_SEGMENT; + DEC_POS; + END_SEGMENT(true); } else - STORE_CHAR(cflags & REG_EXTENDED); + STORE_CHAR; continue; /* @@ -199,10 +202,10 @@ tre_compile_heur(heur_t *h, const tre_ch if (escaped ^ (cflags & REG_EXTENDED)) { PARSE_UNIT('(', ')'); - END_SEGMENT; + END_SEGMENT(true); } else - STORE_CHAR(cflags & REG_EXTENDED); + STORE_CHAR; continue; /* @@ -212,7 +215,7 @@ tre_compile_heur(heur_t *h, const tre_ch */ case TRE_CHAR('\\'): if (escaped) - STORE_CHAR(true); + STORE_CHAR; else escaped = true; continue; @@ -225,11 +228,11 @@ tre_compile_heur(heur_t *h, const tre_ch */ case TRE_CHAR('*'): if (escaped || (!(cflags & REG_EXTENDED) && (i == 0))) - STORE_CHAR(true); + STORE_CHAR; else if ((i != 0)) { - pos--; - END_SEGMENT; + DEC_POS; + END_SEGMENT(true); } continue; @@ -245,9 +248,9 @@ tre_compile_heur(heur_t *h, const tre_ch if ((cflags & REG_EXTENDED) && (i == 0)) continue; else if ((cflags & REG_EXTENDED) ^ escaped) - END_SEGMENT; - else - STORE_CHAR(cflags & REG_EXTENDED); + END_SEGMENT(true); + else + STORE_CHAR; continue; /* @@ -262,11 +265,11 @@ tre_compile_heur(heur_t *h, const tre_ch continue; if ((cflags & REG_EXTENDED) ^ escaped) { - pos--; - END_SEGMENT; + DEC_POS; + END_SEGMENT(true); } else - STORE_CHAR(true); + STORE_CHAR; continue; /* @@ -279,17 +282,22 @@ tre_compile_heur(heur_t *h, const tre_ch goto err; } else if (!(cflags & REG_EXTENDED) && escaped) - END_SEGMENT; + { + errcode = REG_BADPAT; + goto err; + } else - STORE_CHAR(cflags & REG_EXTENDED); + STORE_CHAR; continue; - /* - * Cut the segment at an escaped dot because the fast matcher - * cannot handle it. - */ case TRE_CHAR('.'): - STORE_CHAR(escaped); + if (escaped) + STORE_CHAR; + else + { + tlen = (tlen == -1) ? -1 : tlen + 1; + END_SEGMENT(false); + } continue; /* @@ -299,9 +307,9 @@ tre_compile_heur(heur_t *h, const tre_ch */ default: if (escaped) - END_SEGMENT; + END_SEGMENT(true); else - STORE_CHAR(false); + STORE_CHAR; continue; } } @@ -321,6 +329,8 @@ end_segment: h->type = HEUR_PREFIX_ARRAY; goto ok; } + else if (pos == 0) + continue; if (j == MAX_FRAGMENTS) { @@ -346,6 +356,8 @@ ok: size_t m = 1; int ret; + h->tlen = tlen; + for (int i = 1; i < j; i++) m = (length[i] > length[m]) ? i : m; @@ -368,13 +380,13 @@ ok: if (cflags & REG_NEWLINE) { - ret = tre_compile_fast(h->heurs[0], arr[m], length[m], 0); + ret = tre_compile_literal(h->heurs[0], arr[m], length[m], 0); CHECK_ERR h->type = HEUR_LONGEST; } else { - ret = tre_compile_fast(h->heurs[0], arr[0], length[0], 0); + ret = tre_compile_literal(h->heurs[0], arr[0], length[0], 0); CHECK_ERR if (j == 1) { @@ -384,7 +396,7 @@ ok: goto finish; } else - ret = tre_compile_fast(h->heurs[1], arr[m], length[m], 0); + ret = tre_compile_literal(h->heurs[1], arr[m], length[m], 0); CHECK_ERR if ((h->type == HEUR_PREFIX_ARRAY) || (m == j - 1)) { @@ -394,7 +406,7 @@ ok: goto finish; } else - ret = tre_compile_fast(h->heurs[2], arr[j - 1], length[j - 1], 0); + ret = tre_compile_literal(h->heurs[2], arr[j - 1], length[j - 1], 0); CHECK_ERR h->heurs[3] = NULL; } Modified: user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.h ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.h Sat Oct 22 09:29:44 2011 (r226626) +++ user/gabor/tre-integration/contrib/tre/lib/tre-heuristic.h Sat Oct 22 09:38:03 2011 (r226627) @@ -13,6 +13,7 @@ typedef struct { fastmatch_t *heurs[4]; + ssize_t tlen; int type; } heur_t; From owner-svn-src-user@FreeBSD.ORG Sat Oct 22 10:29:06 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A5EBA106564A; Sat, 22 Oct 2011 10:29:06 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 954CC8FC13; Sat, 22 Oct 2011 10:29:06 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9MAT6Gl073075; Sat, 22 Oct 2011 10:29:06 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9MAT6XQ073073; Sat, 22 Oct 2011 10:29:06 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110221029.p9MAT6XQ073073@svn.freebsd.org> From: Gabor Kovesdan Date: Sat, 22 Oct 2011 10:29:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226629 - user/gabor/tre-integration/contrib/tre/lib X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Oct 2011 10:29:06 -0000 Author: gabor Date: Sat Oct 22 10:29:06 2011 New Revision: 226629 URL: http://svn.freebsd.org/changeset/base/226629 Log: - Remove handling of dot because in some cases it was less efficient than using a heuristic Modified: user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.c Modified: user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.c Sat Oct 22 09:43:35 2011 (r226628) +++ user/gabor/tre-integration/contrib/tre/lib/tre-fastmatch.c Sat Oct 22 10:29:06 2011 (r226629) @@ -100,10 +100,8 @@ static int fastcmp(const fastmatch_t *fg } \ #define IS_OUT_OF_BOUNDS \ - ((!fg->reversed \ - ? ((type == STR_WIDE) ? ((j + fg->wlen) > len) \ - : ((j + fg->len) > len)) \ - : (j < 0))) + ((type == STR_WIDE) ? ((j + fg->wlen) > len) \ + : ((j + fg->len) > len)) /* * Checks whether the new position after shifting in the input string @@ -127,16 +125,12 @@ static int fastcmp(const fastmatch_t *fg switch (type) \ { \ case STR_WIDE: \ - if (!fg->hasdot) \ - { \ if (u != 0 && (unsigned)mismatch == fg->wlen - 1 - shift) \ mismatch -= u; \ v = fg->wlen - 1 - mismatch; \ r = hashtable_get(fg->qsBc_table, \ - &str_wide[!fg->reversed ? (size_t)j + fg->wlen \ - : (size_t)j - 1], &bc); \ + &str_wide[(size_t)j + fg->wlen], &bc); \ gs = fg->bmGs[mismatch]; \ - } \ bc = (r == HASH_OK) ? bc : fg->defBc; \ DPRINT(("tre_fast_match: mismatch on character" CHF ", " \ "BC %d, GS %d\n", \ @@ -144,24 +138,18 @@ static int fastcmp(const fastmatch_t *fg bc, gs)); \ break; \ default: \ - if (!fg->hasdot) \ - { \ if (u != 0 && (unsigned)mismatch == fg->len - 1 - shift) \ mismatch -= u; \ v = fg->len - 1 - mismatch; \ gs = fg->sbmGs[mismatch]; \ - } \ bc = fg->qsBc[((const unsigned char *)str_byte) \ - [!fg->reversed ? (size_t)j + fg->len \ - : (size_t)j - 1]]; \ + [(size_t)j + fg->len]]; \ DPRINT(("tre_fast_match: mismatch on character %c, " \ "BC %d, GS %d\n", \ ((const unsigned char *)startptr)[mismatch + 1], \ bc, gs)); \ } \ - if (fg->hasdot) \ - shift = bc; \ - else \ + \ { \ ts = (u >= v) ? (u - v) : 0; \ shift = MAX(ts, bc); \ @@ -176,43 +164,13 @@ static int fastcmp(const fastmatch_t *fg } \ } \ DPRINT(("tre_fast_match: shifting %u characters\n", shift)); \ - j = !fg->reversed ? j + shift : j - shift; \ + j = j + shift; \ } -/* - * Normal Quick Search would require a shift based on the position the - * next character after the comparison is within the pattern. With - * wildcards, the position of the last dot effects the maximum shift - * distance. - * The closer to the end the wild card is the slower the search. - * - * Examples: - * Pattern Max shift - * ------- --------- - * this 5 - * .his 4 - * t.is 3 - * th.s 2 - * thi. 1 - */ - -/* - * Fills in the bad character shift array for SB/MB strings. - */ #define FILL_QSBC \ - if (fg->reversed) \ - { \ - _FILL_QSBC_REVERSED \ - } \ - else \ - { \ - _FILL_QSBC \ - } - -#define _FILL_QSBC \ for (unsigned int i = 0; i <= UCHAR_MAX; i++) \ - fg->qsBc[i] = fg->len - hasdot; \ - for (unsigned int i = hasdot + 1; i < fg->len; i++) \ + fg->qsBc[i] = fg->len; \ + for (unsigned int i = 1; i < fg->len; i++) \ { \ fg->qsBc[(unsigned char)fg->pattern[i]] = fg->len - i; \ DPRINT(("BC shift for char %c is %zu\n", fg->pattern[i], \ @@ -227,24 +185,6 @@ static int fastcmp(const fastmatch_t *fg } \ } -#define _FILL_QSBC_REVERSED \ - for (unsigned int i = 0; i <= UCHAR_MAX; i++) \ - fg->qsBc[i] = firstdot + 1; \ - for (int i = firstdot - 1; i >= 0; i--) \ - { \ - fg->qsBc[(unsigned char)fg->pattern[i]] = i + 1; \ - DPRINT(("Reverse BC shift for char %c is %d\n", fg->pattern[i], \ - i + 1)); \ - if (fg->icase) \ - { \ - char c = islower((unsigned char)fg->pattern[i]) ? \ - toupper((unsigned char)fg->pattern[i]) : \ - tolower((unsigned char)fg->pattern[i]); \ - fg->qsBc[(unsigned char)c] = i + 1; \ - DPRINT(("Reverse BC shift for char %c is %d\n", c, i + 1)); \ - } \ - } - /* * Fills in the bad character shifts into a hastable for wide strings. * With wide characters it is not possible any more to use a normal @@ -254,26 +194,16 @@ static int fastcmp(const fastmatch_t *fg * in the pattern, so we can store them in a hashtable and store a * default shift value for the rest. */ -#define FILL_QSBC_WIDE \ - if (fg->reversed) \ - { \ - _FILL_QSBC_WIDE_REVERSED \ - } \ - else \ - { \ - _FILL_QSBC_WIDE \ - } -#define _FILL_QSBC_WIDE \ - /* Adjust the shift based on location of the last dot ('.'). */ \ - fg->defBc = fg->wlen - whasdot; \ +#define FILL_QSBC_WIDE \ + fg->defBc = fg->wlen; \ \ /* Preprocess pattern. */ \ fg->qsBc_table = hashtable_init(fg->wlen * (fg->icase ? 8 : 4), \ sizeof(tre_char_t), sizeof(int)); \ if (!fg->qsBc_table) \ FAIL_COMP(REG_ESPACE); \ - for (unsigned int i = whasdot + 1; i < fg->wlen; i++) \ + for (unsigned int i = 1; i < fg->wlen; i++) \ { \ int k = fg->wlen - i; \ int r; \ @@ -294,37 +224,6 @@ static int fastcmp(const fastmatch_t *fg } \ } -#define _FILL_QSBC_WIDE_REVERSED \ - /* Adjust the shift based on location of the last dot ('.'). */ \ - fg->defBc = (size_t)wfirstdot; \ - \ - /* Preprocess pattern. */ \ - fg->qsBc_table = hashtable_init(fg->wlen * (fg->icase ? 8 : 4), \ - sizeof(tre_char_t), sizeof(int)); \ - if (!fg->qsBc_table) \ - FAIL_COMP(REG_ESPACE); \ - for (int i = wfirstdot - 1; i >= 0; i--) \ - { \ - int k = i + 1; \ - int r; \ - \ - r = hashtable_put(fg->qsBc_table, &fg->wpattern[i], &k); \ - if ((r == HASH_FAIL) || (r == HASH_FULL)) \ - FAIL_COMP(REG_ESPACE); \ - DPRINT(("Reverse BC shift for wide char " CHF " is %d\n", \ - fg->wpattern[i], k)); \ - if (fg->icase) \ - { \ - tre_char_t wc = iswlower(fg->wpattern[i]) ? \ - towupper(fg->wpattern[i]) : towlower(fg->wpattern[i]); \ - r = hashtable_put(fg->qsBc_table, &wc, &k); \ - if ((r == HASH_FAIL) || (r == HASH_FULL)) \ - FAIL_COMP(REG_ESPACE); \ - DPRINT(("Reverse BC shift for wide char " CHF " is %d\n", wc, \ - k)); \ - } \ - } - #ifdef _GREP_DEBUG #define DPRINT_BMGS(len, fmt_str, sh) \ for (unsigned int i = 0; i < len; i++) \ @@ -338,7 +237,6 @@ static int fastcmp(const fastmatch_t *fg * Fills in the good suffix table for SB/MB strings. */ #define FILL_BMGS \ - if (!fg->hasdot) \ { \ fg->sbmGs = xmalloc(fg->len * sizeof(int)); \ if (!fg->sbmGs) \ @@ -354,7 +252,6 @@ static int fastcmp(const fastmatch_t *fg * Fills in the good suffix table for wide strings. */ #define FILL_BMGS_WIDE \ - if (!fg->hasdot) \ { \ fg->bmGs = xmalloc(fg->wlen * sizeof(int)); \ if (!fg->bmGs) \ @@ -508,8 +405,6 @@ int tre_compile_literal(fastmatch_t *fg, const tre_char_t *pat, size_t n, int cflags) { - size_t hasdot = 0, whasdot = 0; - ssize_t firstdot = -1, wfirstdot = -1; INIT_COMP; @@ -548,10 +443,8 @@ tre_compile_fast(fastmatch_t *fg, const int cflags) { tre_char_t *tmp; - size_t pos = 0, hasdot = 0, whasdot = 0;; - ssize_t firstdot = -1, wfirstdot = -1; + size_t pos = 0; bool escaped = false; - bool *_escmap = NULL; INIT_COMP; @@ -627,24 +520,9 @@ tre_compile_fast(fastmatch_t *fg, const continue; case TRE_CHAR('.'): if (escaped) - { - if (!_escmap) - _escmap = xmalloc(n * sizeof(bool)); - if (!_escmap) - { - xfree(tmp); - return REG_ESPACE; - } - _escmap[i] = true; STORE_CHAR; - } else - { - whasdot = i; - if (wfirstdot == -1) - wfirstdot = i; - STORE_CHAR; - } + goto badpat; continue; case TRE_CHAR('^'): STORE_CHAR; @@ -692,8 +570,6 @@ badpat: return REG_BADPAT; } - fg->hasdot = whasdot; - /* * The pattern has been processed and copied to tmp as a literal string * with escapes, anchors (^$) and the word boundary match character @@ -701,47 +577,9 @@ badpat: */ #ifdef TRE_WCHAR SAVE_PATTERN(tmp, pos, fg->wpattern, fg->wlen); - fg->wescmap = _escmap; STORE_MBS_PAT; - - /* - * The position of dots and escaped dots is different in the MB string - * than in to the wide string so traverse the converted string, as well, - * to store these positions. - */ - if (fg->hasdot || (fg->wescmap != NULL)) - { - if (fg->wescmap != NULL) - { - fg->escmap = xmalloc(fg->len * sizeof(bool)); - if (!fg->escmap) - { - tre_free_fast(fg); - return REG_ESPACE; - } - } - - escaped = false; - for (unsigned int i = 0; i < fg->len; i++) - if (fg->pattern[i] == '\\') - escaped = !escaped; - else if (fg->pattern[i] == '.' && escaped) - { - fg->escmap[i] = true; - escaped = false; - } - else if (fg->pattern[i] == '.' && !escaped) - { - hasdot = i; - if (firstdot == -1) - firstdot = i; - } - else - escaped = false; - } #else SAVE_PATTERN(tmp, pos, fg->pattern, fg->len); - fg->escmap = _escmap; #endif xfree(tmp); @@ -752,14 +590,6 @@ badpat: fg->icase ? 'y' : 'n', fg->word ? 'y' : 'n', fg->newline ? 'y' : 'n')); - /* Check whether reverse QS algorithm is more efficient */ - if ((wfirstdot > -1) && (fg->wlen - whasdot + 1 < (size_t)wfirstdot) && - fg->nosub) - { - fg->reversed = true; - DPRINT(("tre_compile_fast: using reverse QS algorithm\n")); - } - FILL_QSBC; FILL_BMGS; #ifdef TRE_WCHAR @@ -773,7 +603,7 @@ badpat: #define _SHIFT_ONE \ { \ shift = 1; \ - j = !fg->reversed ? j + shift : j - shift; \ + j = j + shift; \ continue; \ } @@ -902,10 +732,6 @@ tre_match_fast(const fastmatch_t *fg, co if (fg->eol && (eflags & REG_NOTEOL)) len--; - if (fg->reversed) - j = len - (type == STR_WIDE ? fg->wlen : fg->len); - - /* Only try once at the beginning or ending of the line. */ if ((fg->bol || fg->eol) && !fg->newline && !(eflags & REG_NOTBOL) && !(eflags & REG_NOTEOL)) @@ -974,16 +800,10 @@ tre_free_fast(fastmatch_t *fg) #ifdef TRE_WCHAR hashtable_free(fg->qsBc_table); - if (!fg->hasdot) - xfree(fg->bmGs); - if (fg->wescmap) - xfree(fg->wescmap); + xfree(fg->bmGs); xfree(fg->wpattern); #endif - if (!fg->hasdot) - xfree(fg->sbmGs); - if (fg->escmap) - xfree(fg->escmap); + xfree(fg->sbmGs); xfree(fg->pattern); } @@ -999,7 +819,6 @@ fastcmp(const fastmatch_t *fg, const voi const char *pat_byte = fg->pattern; const tre_char_t *str_wide = data; const tre_char_t *pat_wide = fg->wpattern; - const bool *escmap = (type == STR_WIDE) ? fg->wescmap : fg->escmap; size_t len = (type == STR_WIDE) ? fg->wlen : fg->len; int ret = REG_OK; @@ -1008,25 +827,12 @@ fastcmp(const fastmatch_t *fg, const voi switch (type) { case STR_WIDE: - - /* Check dot */ - if (fg->hasdot && pat_wide[i] == TRE_CHAR('.') && - (!escmap || !escmap[i]) && - (!fg->newline || (str_wide[i] != TRE_CHAR('\n')))) - continue; - /* Compare */ if (fg->icase ? (towlower(pat_wide[i]) == towlower(str_wide[i])) : (pat_wide[i] == str_wide[i])) continue; break; default: - /* Check dot */ - if (fg->hasdot && pat_byte[i] == '.' && - (!escmap || !escmap[i]) && - (!fg->newline || (str_byte[i] != '\n'))) - continue; - /* Compare */ if (fg->icase ? (tolower(pat_byte[i]) == tolower(str_byte[i])) : (pat_byte[i] == str_byte[i])) From owner-svn-src-user@FreeBSD.ORG Sat Oct 22 11:39:18 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0D6F51065673; Sat, 22 Oct 2011 11:39:18 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id D81408FC14; Sat, 22 Oct 2011 11:39:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9MBdHKH077309; Sat, 22 Oct 2011 11:39:17 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9MBdHc6077307; Sat, 22 Oct 2011 11:39:17 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110221139.p9MBdHc6077307@svn.freebsd.org> From: Gabor Kovesdan Date: Sat, 22 Oct 2011 11:39:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226630 - user/gabor/tre-integration/contrib/tre/lib X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Oct 2011 11:39:18 -0000 Author: gabor Date: Sat Oct 22 11:39:17 2011 New Revision: 226630 URL: http://svn.freebsd.org/changeset/base/226630 Log: - Use the pattern lenght if possible to limit the context that is processed with the automaton Modified: user/gabor/tre-integration/contrib/tre/lib/regexec.c Modified: user/gabor/tre-integration/contrib/tre/lib/regexec.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/regexec.c Sat Oct 22 10:29:06 2011 (r226629) +++ user/gabor/tre-integration/contrib/tre/lib/regexec.c Sat Oct 22 11:39:17 2011 (r226630) @@ -203,20 +203,29 @@ tre_match(const tre_tnfa_t *tnfa, const if (ret != REG_OK) return ret; - for (so = st + pmatch[0].rm_so - 1; ; so--) + if (heur->tlen == -1) { - if ((type == STR_WIDE) ? (data_wide[so] == TRE_CHAR('\n')) : - (data_byte[so] == '\n')) - break; - if (so == 0) - break; + for (so = st + pmatch[0].rm_so - 1; ; so--) + { + if ((type == STR_WIDE) ? (data_wide[so] == TRE_CHAR('\n')) : + (data_byte[so] == '\n')) + break; + if (so == 0) + break; + } + + for (eo = st + pmatch[0].rm_eo; st + eo < len; eo++) + { + if ((type == STR_WIDE) ? (data_wide[eo] == TRE_CHAR('\n')) : + (data_byte[eo] == '\n')) + break; + } } - - for (eo = st + pmatch[0].rm_eo; st + eo < len; eo++) + else { - if ((type == STR_WIDE) ? (data_wide[eo] == TRE_CHAR('\n')) : - (data_byte[eo] == '\n')) - break; + size_t rem = heur->tlen - (pmatch[0].rm_eo - pmatch[0].rm_so); + so = st + pmatch[0].rm_so - rem; + eo = st + pmatch[0].rm_eo + rem; } SEEK_TO(so); @@ -272,8 +281,12 @@ tre_match(const tre_tnfa_t *tnfa, const /* Suffix heuristic not available */ else { + size_t l = (heur->tlen == -1) ? len - st : heur->tlen; + + if (l < len - st) + return REG_NOMATCH; SEEK_TO(st); - ret = tre_match(tnfa, string, len - st, type, nmatch, + ret = tre_match(tnfa, string, l, type, nmatch, pmatch, eflags, NULL, NULL); FIX_OFFSETS(st += n); } From owner-svn-src-user@FreeBSD.ORG Sat Oct 22 11:42:49 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 04147106564A; Sat, 22 Oct 2011 11:42:49 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id E7EA08FC08; Sat, 22 Oct 2011 11:42:48 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9MBgm7h077473; Sat, 22 Oct 2011 11:42:48 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9MBgmXr077471; Sat, 22 Oct 2011 11:42:48 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201110221142.p9MBgmXr077471@svn.freebsd.org> From: Gabor Kovesdan Date: Sat, 22 Oct 2011 11:42:48 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226631 - user/gabor/tre-integration/tools/test/regex/sgrep X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Oct 2011 11:42:49 -0000 Author: gabor Date: Sat Oct 22 11:42:48 2011 New Revision: 226631 URL: http://svn.freebsd.org/changeset/base/226631 Log: - Add a missing break - Fix compilation on some platforms - Turn off REG_NEWLINE by default Modified: user/gabor/tre-integration/tools/test/regex/sgrep/sgrep.c Modified: user/gabor/tre-integration/tools/test/regex/sgrep/sgrep.c ============================================================================== --- user/gabor/tre-integration/tools/test/regex/sgrep/sgrep.c Sat Oct 22 11:39:17 2011 (r226630) +++ user/gabor/tre-integration/tools/test/regex/sgrep/sgrep.c Sat Oct 22 11:42:48 2011 (r226631) @@ -135,12 +135,12 @@ procfile(const char *path) ret = regexec(®ex, data, 1, &pmatch, eflags); if (ret == REG_NOMATCH) break; - printf("(%ld,%ld)", pmatch.rm_so, pmatch.rm_eo); + printf("(%lld,%lld)", (long long)pmatch.rm_so, (long long)pmatch.rm_eo); if (pmatch.rm_so == pmatch.rm_eo) pmatch.rm_eo++; st = pmatch.rm_eo; } - putchar(')'); + printf(")\n"); } int @@ -152,7 +152,6 @@ main(int argc, char *argv[]) setlocale(LC_ALL, ""); - cflags = REG_NEWLINE; eflags = REG_STARTEND; while (((c = getopt(argc, argv, "e:EFNr")) != -1)) @@ -161,6 +160,7 @@ main(int argc, char *argv[]) pat = strdup(optarg); if (pat == NULL) return (EXIT_FAILURE); + break; case 'E': cflags |= REG_EXTENDED; break; From owner-svn-src-user@FreeBSD.ORG Sat Oct 22 22:56:23 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7C0BC1065676; Sat, 22 Oct 2011 22:56:23 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 65DA08FC14; Sat, 22 Oct 2011 22:56:23 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9MMuNhg099476; Sat, 22 Oct 2011 22:56:23 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9MMuNn3099450; Sat, 22 Oct 2011 22:56:23 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201110222256.p9MMuNn3099450@svn.freebsd.org> From: Attilio Rao Date: Sat, 22 Oct 2011 22:56:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226644 - in user/attilio/vmcontention: . bin/df bin/ls cddl/contrib/opensolaris/cmd/zdb cddl/contrib/opensolaris/cmd/zpool cddl/contrib/opensolaris/head cddl/contrib/opensolaris/lib/li... X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Oct 2011 22:56:23 -0000 Author: attilio Date: Sat Oct 22 22:56:20 2011 New Revision: 226644 URL: http://svn.freebsd.org/changeset/base/226644 Log: MFC Added: user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h - copied unchanged from r226643, head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/TinyPtrVector.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/ADT/TinyPtrVector.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/LoopIterator.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Analysis/LoopIterator.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/LexicalScopes.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/CodeGen/LexicalScopes.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/DebugInfo/ - copied from r226643, head/contrib/llvm/include/llvm/DebugInfo/ user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCAsmBackend.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MCAsmBackend.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCAtom.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MCAtom.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCCodeGenInfo.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MCCodeGenInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MCInstrAnalysis.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCModule.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MCModule.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCTargetAsmLexer.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MCTargetAsmLexer.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCTargetAsmParser.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MCTargetAsmParser.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MachineLocation.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/MC/MachineLocation.h user/attilio/vmcontention/contrib/llvm/include/llvm/Object/Archive.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Object/Archive.h user/attilio/vmcontention/contrib/llvm/include/llvm/Object/MachO.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Object/MachO.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/BlockFrequency.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Support/BlockFrequency.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/Capacity.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Support/Capacity.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/CodeGen.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Support/CodeGen.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/DataExtractor.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Support/DataExtractor.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/GCOV.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Support/GCOV.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/TargetRegistry.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Support/TargetRegistry.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/TargetSelect.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Support/TargetSelect.h user/attilio/vmcontention/contrib/llvm/include/llvm/TableGen/ - copied from r226643, head/contrib/llvm/include/llvm/TableGen/ user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Transforms/IPO/PassManagerBuilder.h user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h - copied unchanged from r226643, head/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h user/attilio/vmcontention/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp - copied unchanged from r226643, head/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp - copied unchanged from r226643, head/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LexicalScopes.cpp - copied unchanged from r226643, head/contrib/llvm/lib/CodeGen/LexicalScopes.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp - copied unchanged from r226643, head/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveRangeCalc.h - copied unchanged from r226643, head/contrib/llvm/lib/CodeGen/LiveRangeCalc.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp - copied unchanged from r226643, head/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/DebugInfo/ - copied from r226643, head/contrib/llvm/lib/DebugInfo/ user/attilio/vmcontention/contrib/llvm/lib/MC/MCAsmBackend.cpp - copied unchanged from r226643, head/contrib/llvm/lib/MC/MCAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCAtom.cpp - copied unchanged from r226643, head/contrib/llvm/lib/MC/MCAtom.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCCodeGenInfo.cpp - copied unchanged from r226643, head/contrib/llvm/lib/MC/MCCodeGenInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCInstrAnalysis.cpp - copied unchanged from r226643, head/contrib/llvm/lib/MC/MCInstrAnalysis.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCModule.cpp - copied unchanged from r226643, head/contrib/llvm/lib/MC/MCModule.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCObjectFileInfo.cpp - copied unchanged from r226643, head/contrib/llvm/lib/MC/MCObjectFileInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp - copied unchanged from r226643, head/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCTargetAsmLexer.cpp - copied unchanged from r226643, head/contrib/llvm/lib/MC/MCTargetAsmLexer.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/Archive.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Object/Archive.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/BlockFrequency.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Support/BlockFrequency.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/DataExtractor.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Support/DataExtractor.cpp user/attilio/vmcontention/contrib/llvm/lib/TableGen/ - copied from r226643, head/contrib/llvm/lib/TableGen/ user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMFixupKinds.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeAsmBackend.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeBaseInfo.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeBaseInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeMCCodeEmitter.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeMCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsBaseInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/MipsCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsJITInfo.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/MipsJITInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsJITInfo.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/MipsJITInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsRelocations.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/Mips/MipsRelocations.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/InstPrinter/ - copied from r226643, head/contrib/llvm/lib/Target/PTX/InstPrinter/ user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/MCTargetDesc/PTXBaseInfo.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/MCTargetDesc/PTXBaseInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXAsmPrinter.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXAsmPrinter.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXFPRoundingModePass.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXFPRoundingModePass.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXInstrLoadStore.td - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXInstrLoadStore.td user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXMCInstLower.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXMCInstLower.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXParamManager.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXParamManager.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXParamManager.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXParamManager.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXRegAlloc.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXRegAlloc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXSelectionDAGInfo.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXSelectionDAGInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXSelectionDAGInfo.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/PTX/PTXSelectionDAGInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCBaseInfo.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCBaseInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCFixupKinds.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h - copied unchanged from r226643, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86FixupKinds.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp - copied unchanged from r226643, head/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/GCOV.cpp - copied unchanged from r226643, head/contrib/llvm/lib/VMCore/GCOV.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/SelectorLocationsKind.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/AST/SelectorLocationsKind.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/VTTBuilder.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/AST/VTTBuilder.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/AST/VTableBuilder.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticConsumer.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticConsumer.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/MultiInitializer.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Sema/MultiInitializer.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/SemaFixItUtils.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Sema/SemaFixItUtils.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Weak.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Sema/Weak.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/Module.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Serialization/Module.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerRegistry.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerRegistry.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/ARCMigrate/PlistReporter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/ARCMigrate/TransAPIUses.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/SelectorLocationsKind.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/AST/SelectorLocationsKind.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Analysis/ProgramPoint.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/LangOptions.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Basic/LangOptions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDANV.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/CodeGen/CGCUDARuntime.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Headers/stdalign.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Headers/stdalign.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/MultiInitializer.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Sema/MultiInitializer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaFixItUtils.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Sema/SemaFixItUtils.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/Module.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Serialization/Module.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangCheckers.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangCheckers.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSKeychainAPIChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocOverflowSecurityChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Checker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerRegistry.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineObjC.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp - copied unchanged from r226643, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/utils/ - copied from r226643, head/contrib/llvm/tools/clang/utils/ user/attilio/vmcontention/etc/devd/apple.conf - copied unchanged from r226643, head/etc/devd/apple.conf user/attilio/vmcontention/lib/clang/include/ARMGenDisassemblerTables.inc - copied unchanged from r226643, head/lib/clang/include/ARMGenDisassemblerTables.inc user/attilio/vmcontention/lib/clang/include/clang/Parse/ - copied from r226643, head/lib/clang/include/clang/Parse/ user/attilio/vmcontention/lib/clang/libllvmtablegen/ - copied from r226643, head/lib/clang/libllvmtablegen/ user/attilio/vmcontention/lib/libc/gen/modf.c - copied unchanged from r226643, head/lib/libc/gen/modf.c user/attilio/vmcontention/lib/msun/man/ccos.3 - copied unchanged from r226643, head/lib/msun/man/ccos.3 user/attilio/vmcontention/lib/msun/man/ccosh.3 - copied unchanged from r226643, head/lib/msun/man/ccosh.3 user/attilio/vmcontention/lib/msun/src/k_exp.c - copied unchanged from r226643, head/lib/msun/src/k_exp.c user/attilio/vmcontention/lib/msun/src/k_expf.c - copied unchanged from r226643, head/lib/msun/src/k_expf.c user/attilio/vmcontention/lib/msun/src/s_ccosh.c - copied unchanged from r226643, head/lib/msun/src/s_ccosh.c user/attilio/vmcontention/lib/msun/src/s_ccoshf.c - copied unchanged from r226643, head/lib/msun/src/s_ccoshf.c user/attilio/vmcontention/lib/msun/src/s_csinh.c - copied unchanged from r226643, head/lib/msun/src/s_csinh.c user/attilio/vmcontention/lib/msun/src/s_csinhf.c - copied unchanged from r226643, head/lib/msun/src/s_csinhf.c user/attilio/vmcontention/lib/msun/src/s_ctanh.c - copied unchanged from r226643, head/lib/msun/src/s_ctanh.c user/attilio/vmcontention/lib/msun/src/s_ctanhf.c - copied unchanged from r226643, head/lib/msun/src/s_ctanhf.c user/attilio/vmcontention/share/man/man4/man4.powerpc/abtn.4 - copied unchanged from r226643, head/share/man/man4/man4.powerpc/abtn.4 user/attilio/vmcontention/sys/boot/fdt/dts/xlp-basic.dts - copied unchanged from r226643, head/sys/boot/fdt/dts/xlp-basic.dts user/attilio/vmcontention/sys/dev/adb/adb_buttons.c - copied unchanged from r226643, head/sys/dev/adb/adb_buttons.c user/attilio/vmcontention/sys/dev/fdt/fdt_mips.c - copied unchanged from r226643, head/sys/dev/fdt/fdt_mips.c user/attilio/vmcontention/sys/dev/fxp/inphy.c - copied unchanged from r226643, head/sys/dev/fxp/inphy.c user/attilio/vmcontention/sys/dev/fxp/inphyreg.h - copied unchanged from r226643, head/sys/dev/fxp/inphyreg.h user/attilio/vmcontention/sys/dev/usb/net/ruephy.c - copied unchanged from r226643, head/sys/dev/usb/net/ruephy.c user/attilio/vmcontention/sys/dev/usb/net/ruephyreg.h - copied unchanged from r226643, head/sys/dev/usb/net/ruephyreg.h user/attilio/vmcontention/sys/dev/xl/xlphy.c - copied unchanged from r226643, head/sys/dev/xl/xlphy.c user/attilio/vmcontention/sys/mips/include/fdt.h - copied unchanged from r226643, head/sys/mips/include/fdt.h user/attilio/vmcontention/sys/mips/include/ofw_machdep.h - copied unchanged from r226643, head/sys/mips/include/ofw_machdep.h user/attilio/vmcontention/tools/regression/lib/msun/test-ctrig.c - copied unchanged from r226643, head/tools/regression/lib/msun/test-ctrig.c user/attilio/vmcontention/tools/regression/lib/msun/test-ctrig.t - copied unchanged from r226643, head/tools/regression/lib/msun/test-ctrig.t user/attilio/vmcontention/tools/tools/zfsboottest/zfsboottest.sh - copied unchanged from r226643, head/tools/tools/zfsboottest/zfsboottest.sh user/attilio/vmcontention/usr.bin/clang/clang-tblgen/ - copied from r226643, head/usr.bin/clang/clang-tblgen/ user/attilio/vmcontention/usr.bin/gzip/unxz.c - copied unchanged from r226643, head/usr.bin/gzip/unxz.c Deleted: user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/BlockFrequency.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequency.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineLocation.h user/attilio/vmcontention/contrib/llvm/include/llvm/CompilerDriver/ user/attilio/vmcontention/contrib/llvm/include/llvm/Support/PassManagerBuilder.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetAsmBackend.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetAsmInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetAsmLexer.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetAsmParser.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetRegistry.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetSelect.h user/attilio/vmcontention/contrib/llvm/lib/Analysis/BlockFrequency.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LowerSubregs.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineBlockFrequency.cpp user/attilio/vmcontention/contrib/llvm/lib/CompilerDriver/ user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/MCJIT/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/MCJIT/Makefile user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Makefile user/attilio/vmcontention/contrib/llvm/lib/MC/MCParser/TargetAsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/TargetAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Object/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMAddressingModes.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMBaseInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMFixupKinds.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMMCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMMCExpr.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMMCExpr.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMMachObjectWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassemblerCore.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Disassembler/ThumbDisassemblerCore.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/InstPrinter/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/InstPrinter/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/NEONMoveFix.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/AsmParser/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/AsmParser/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/Disassembler/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/Disassembler/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/InstPrinter/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/InstPrinter/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeMCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/InstPrinter/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/InstPrinter/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/InstPrinter/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/InstPrinter/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXCallingConv.td user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/TargetInfo/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/TargetInfo/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/generate-register-td.py user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/InstPrinter/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/InstPrinter/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCAsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCFixupKinds.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCMCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCPredicates.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCPredicates.h user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/TargetAsmInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/TargetAsmLexer.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/InstPrinter/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/X86/InstPrinter/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/X86/SSEDomainFix.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/Utils/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/X86/Utils/Makefile user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86AsmBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86FixupKinds.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86MCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86MachObjectWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/MCTargetDesc/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/MCTargetDesc/Makefile user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/LowerSetJmp.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/TailDuplication.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Config/ user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/ChainedDiagnosticClient.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticsClient.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/ASTSerializationListener.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerProvider.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathDiagnosticClients.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/GRState.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/GRStateTrait.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/TransferFuncs.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/Makefile user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticsClient.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaCXXCast.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangSACheckerProvider.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangSACheckerProvider.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Makefile user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicStore.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CFRefCount.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CXXExprEngine.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/FlatStore.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/GRState.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Makefile user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CMakeLists.txt user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/Makefile user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Makefile user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/README.txt user/attilio/vmcontention/contrib/llvm/utils/TableGen/ClangASTNodesEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/ClangASTNodesEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/ClangAttrEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/ClangAttrEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/ClangDiagnosticsEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/ClangDiagnosticsEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/ClangSACheckersEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/ClangSACheckersEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/Error.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/Error.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/LLVMCConfigurationEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/LLVMCConfigurationEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/NeonEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/NeonEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/OptParserEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/OptParserEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/Record.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/Record.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/TGLexer.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/TGLexer.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/TGParser.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/TGParser.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/TableGenBackend.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/TableGenBackend.h user/attilio/vmcontention/lib/clang/include/ARMGenDecoderTables.inc user/attilio/vmcontention/lib/libc/amd64/gen/modf.S user/attilio/vmcontention/lib/libc/arm/gen/modf.c user/attilio/vmcontention/lib/libc/i386/gen/modf.S user/attilio/vmcontention/lib/libc/ia64/gen/modf.c user/attilio/vmcontention/lib/libc/mips/gen/modf.S user/attilio/vmcontention/lib/libc/mips/gen/modf.c user/attilio/vmcontention/lib/libc/powerpc/gen/modf.c user/attilio/vmcontention/lib/libc/powerpc64/gen/modf.c user/attilio/vmcontention/lib/libc/sparc64/gen/modf.S user/attilio/vmcontention/release/svnbranch.awk user/attilio/vmcontention/sys/dev/mii/exphy.c user/attilio/vmcontention/sys/dev/mii/inphy.c user/attilio/vmcontention/sys/dev/mii/inphyreg.h user/attilio/vmcontention/sys/dev/mii/ruephy.c user/attilio/vmcontention/sys/dev/mii/ruephyreg.h user/attilio/vmcontention/usr.bin/kdump/kdump_subr.h Modified: user/attilio/vmcontention/Makefile.inc1 user/attilio/vmcontention/UPDATING user/attilio/vmcontention/bin/df/df.1 user/attilio/vmcontention/bin/df/df.c user/attilio/vmcontention/bin/ls/ls.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c user/attilio/vmcontention/cddl/contrib/opensolaris/head/thread.h user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c user/attilio/vmcontention/contrib/gcc/config/i386/pmm_malloc.h user/attilio/vmcontention/contrib/llvm/include/llvm-c/Core.h user/attilio/vmcontention/contrib/llvm/include/llvm-c/Disassembler.h user/attilio/vmcontention/contrib/llvm/include/llvm-c/Object.h user/attilio/vmcontention/contrib/llvm/include/llvm-c/Target.h user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/IPO.h user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/Scalar.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/APInt.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ArrayRef.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseMap.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseMapInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseSet.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ImmutableMap.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ImmutableSet.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/IntervalMap.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/PointerUnion.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/PostOrderIterator.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/SCCIterator.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/STLExtras.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/SmallVector.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/Statistic.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/StringExtras.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/Triple.h user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/Twine.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/BlockFrequencyImpl.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/CodeMetrics.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/ConstantFolding.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/DIBuilder.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/DebugInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/FindUsedTypes.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/IVUsers.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/InlineCost.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/LoopInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/LoopPass.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/RegionPass.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h user/attilio/vmcontention/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h user/attilio/vmcontention/contrib/llvm/include/llvm/Argument.h user/attilio/vmcontention/contrib/llvm/include/llvm/Attributes.h user/attilio/vmcontention/contrib/llvm/include/llvm/AutoUpgrade.h user/attilio/vmcontention/contrib/llvm/include/llvm/BasicBlock.h user/attilio/vmcontention/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/Analysis.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/FastISel.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/LiveInterval.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/LiveVariables.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineConstantPool.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineInstr.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineOperand.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/Passes.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h user/attilio/vmcontention/contrib/llvm/include/llvm/CodeGen/ValueTypes.h user/attilio/vmcontention/contrib/llvm/include/llvm/Constant.h user/attilio/vmcontention/contrib/llvm/include/llvm/Constants.h user/attilio/vmcontention/contrib/llvm/include/llvm/DerivedTypes.h user/attilio/vmcontention/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h user/attilio/vmcontention/contrib/llvm/include/llvm/Function.h user/attilio/vmcontention/contrib/llvm/include/llvm/GlobalAlias.h user/attilio/vmcontention/contrib/llvm/include/llvm/GlobalValue.h user/attilio/vmcontention/contrib/llvm/include/llvm/GlobalVariable.h user/attilio/vmcontention/contrib/llvm/include/llvm/InitializePasses.h user/attilio/vmcontention/contrib/llvm/include/llvm/InlineAsm.h user/attilio/vmcontention/contrib/llvm/include/llvm/InstrTypes.h user/attilio/vmcontention/contrib/llvm/include/llvm/Instruction.def user/attilio/vmcontention/contrib/llvm/include/llvm/Instruction.h user/attilio/vmcontention/contrib/llvm/include/llvm/Instructions.h user/attilio/vmcontention/contrib/llvm/include/llvm/IntrinsicInst.h user/attilio/vmcontention/contrib/llvm/include/llvm/Intrinsics.h user/attilio/vmcontention/contrib/llvm/include/llvm/Intrinsics.td user/attilio/vmcontention/contrib/llvm/include/llvm/IntrinsicsXCore.td user/attilio/vmcontention/contrib/llvm/include/llvm/LinkAllPasses.h user/attilio/vmcontention/contrib/llvm/include/llvm/Linker.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/EDInstInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCAsmInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCAsmInfoDarwin.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCAssembler.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCContext.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCDirectives.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCDisassembler.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCDwarf.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCInst.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCInstPrinter.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCInstrDesc.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCObjectStreamer.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCParser/AsmLexer.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCParser/MCAsmLexer.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCRegisterInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCStreamer.h user/attilio/vmcontention/contrib/llvm/include/llvm/MC/MCValue.h user/attilio/vmcontention/contrib/llvm/include/llvm/Module.h user/attilio/vmcontention/contrib/llvm/include/llvm/Object/COFF.h user/attilio/vmcontention/contrib/llvm/include/llvm/Object/MachOFormat.h user/attilio/vmcontention/contrib/llvm/include/llvm/Object/MachOObject.h user/attilio/vmcontention/contrib/llvm/include/llvm/Object/ObjectFile.h user/attilio/vmcontention/contrib/llvm/include/llvm/OperandTraits.h user/attilio/vmcontention/contrib/llvm/include/llvm/Operator.h user/attilio/vmcontention/contrib/llvm/include/llvm/PassManagers.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/BranchProbability.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/CallSite.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/CommandLine.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/ConstantFolder.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/DataTypes.h.in user/attilio/vmcontention/contrib/llvm/include/llvm/Support/Dwarf.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/DynamicLibrary.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/ELF.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/FileSystem.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/Format.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/GetElementPtrTypeIterator.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/IRBuilder.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/InstVisitor.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/MachO.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/MemoryBuffer.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/NoFolder.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/PathV1.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/PathV2.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/Process.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/SMLoc.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/SourceMgr.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/TargetFolder.h user/attilio/vmcontention/contrib/llvm/include/llvm/Support/TypeBuilder.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/Target.td user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetData.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetFrameLowering.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetInstrInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetIntrinsicInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetLowering.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetMachine.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetOptions.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h user/attilio/vmcontention/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/IPO.h user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/Scalar.h user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/Utils/AddrModeMatcher.h user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/Utils/FunctionUtils.h user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h user/attilio/vmcontention/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h user/attilio/vmcontention/contrib/llvm/include/llvm/Type.h user/attilio/vmcontention/contrib/llvm/include/llvm/User.h user/attilio/vmcontention/contrib/llvm/include/llvm/Value.h user/attilio/vmcontention/contrib/llvm/lib/Analysis/AliasAnalysis.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/AliasSetTracker.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/Analysis.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/ConstantFolding.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/DIBuilder.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/DbgInfoPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/DebugInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/IPA/CallGraphSCCPass.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/IPA/FindUsedTypes.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/IVUsers.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/InlineCost.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/InstructionSimplify.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/LazyValueInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/Lint.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/Loads.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/LoopDependenceAnalysis.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/LoopInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/LoopPass.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/MemDepPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/PHITransAddr.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/PathNumbering.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/RegionPass.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/ScalarEvolution.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/ScalarEvolutionNormalization.cpp user/attilio/vmcontention/contrib/llvm/lib/Analysis/ValueTracking.cpp user/attilio/vmcontention/contrib/llvm/lib/AsmParser/LLLexer.cpp user/attilio/vmcontention/contrib/llvm/lib/AsmParser/LLParser.cpp user/attilio/vmcontention/contrib/llvm/lib/AsmParser/LLParser.h user/attilio/vmcontention/contrib/llvm/lib/AsmParser/LLToken.h user/attilio/vmcontention/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp user/attilio/vmcontention/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.h user/attilio/vmcontention/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp user/attilio/vmcontention/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/Analysis.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfException.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/AsmPrinter/Win64Exception.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/BranchFolding.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/CodeGen.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ELFCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ELFCodeEmitter.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ELFWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/IfConversion.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/InlineSpiller.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/InterferenceCache.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/InterferenceCache.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveInterval.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveIntervalUnion.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveRangeEdit.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/LiveVariables.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineCSE.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineFunction.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineInstr.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineLICM.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineSink.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/MachineVerifier.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/PHIElimination.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegAllocLinearScan.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegisterClassInfo.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegisterCoalescer.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/ShadowStackGC.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SjLjEHPrepare.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SpillPlacement.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SpillPlacement.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SplitKit.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/SplitKit.h user/attilio/vmcontention/contrib/llvm/lib/CodeGen/Splitter.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/StackProtector.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/StrongPHIElimination.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/TailDuplication.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/TargetInstrInfoImpl.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp user/attilio/vmcontention/contrib/llvm/lib/CodeGen/VirtRegMap.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/Interpreter/Execution.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/Interpreter/Interpreter.h user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/JIT/Intercept.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/JIT/JIT.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/JIT/JIT.h user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/JIT/JITDwarfEmitter.h user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/JIT/JITEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/MCJIT/Intercept.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h user/attilio/vmcontention/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp user/attilio/vmcontention/contrib/llvm/lib/Linker/LinkModules.cpp user/attilio/vmcontention/contrib/llvm/lib/Linker/Linker.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/ELFObjectWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/ELFObjectWriter.h user/attilio/vmcontention/contrib/llvm/lib/MC/MCAsmInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCAsmInfoCOFF.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCAsmInfoDarwin.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCAsmStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCAssembler.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCContext.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCDisassembler/Disassembler.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCDisassembler/Disassembler.h user/attilio/vmcontention/contrib/llvm/lib/MC/MCDisassembler/EDDisassembler.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCDisassembler/EDDisassembler.h user/attilio/vmcontention/contrib/llvm/lib/MC/MCDisassembler/EDInst.h user/attilio/vmcontention/contrib/llvm/lib/MC/MCDisassembler/EDToken.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCDisassembler/EDToken.h user/attilio/vmcontention/contrib/llvm/lib/MC/MCDwarf.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCELF.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCELFStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCELFStreamer.h user/attilio/vmcontention/contrib/llvm/lib/MC/MCExpr.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCInstPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCLoggingStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCMachOStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCNullStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCObjectStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCParser/AsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCPureStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MCWin64EH.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/MachObjectWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/MC/WinCOFFStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/Binary.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/COFFObjectFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/ELFObjectFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/MachOObject.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/MachOObjectFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/Object.cpp user/attilio/vmcontention/contrib/llvm/lib/Object/ObjectFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/APFloat.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/APInt.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Atomic.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/BranchProbability.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/CommandLine.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/ConstantRange.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/CrashRecoveryContext.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Disassembler.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Dwarf.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/DynamicLibrary.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/FoldingSet.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Host.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/IncludeFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Memory.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/MemoryBuffer.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/MemoryObject.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Mutex.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Path.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/PathV2.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/PrettyStackTrace.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/RWMutex.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/SearchForAddressOfSpecialSymbol.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/StringExtras.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/StringRef.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/TargetRegistry.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/ThreadLocal.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Threading.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Triple.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Twine.cpp user/attilio/vmcontention/contrib/llvm/lib/Support/Unix/Host.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Unix/Path.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Unix/PathV2.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Unix/Process.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Windows/DynamicLibrary.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Windows/Memory.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Windows/PathV2.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Windows/Process.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Windows/RWMutex.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Windows/Signals.inc user/attilio/vmcontention/contrib/llvm/lib/Support/Windows/Windows.h user/attilio/vmcontention/contrib/llvm/lib/Support/raw_ostream.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARM.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARM.td user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMGlobalMerge.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMMCInstLower.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMSubtarget.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmLexer.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Thumb1RegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Thumb2ITBlockPass.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaISelDAGToDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/AlphaTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/MCTargetDesc/AlphaMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinFrameLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinIntrinsicInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/MCTargetDesc/BlackfinMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Blackfin/TargetInfo/BlackfinTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CBackend/CBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CBackend/CTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/CBackend/TargetInfo/CBackendTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/MCTargetDesc/SPUMCTargetDesc.h user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUFrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUFrameLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPURegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/SPUTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CppBackend/CPPBackend.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/CppBackend/CPPTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/CppBackend/TargetInfo/CppBackendTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/AsmParser/MBlazeAsmLexer.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/AsmParser/MBlazeAsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/Disassembler/MBlazeDisassembler.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/InstPrinter/MBlazeInstPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/InstPrinter/MBlazeInstPrinter.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlaze.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeFrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeIntrinsicInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MBlazeTargetObjectFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/MCTargetDesc/MBlazeMCTargetDesc.h user/attilio/vmcontention/contrib/llvm/lib/Target/MBlaze/TargetInfo/MBlazeTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/InstPrinter/MSP430InstPrinter.h user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MCTargetDesc/MSP430MCTargetDesc.h user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430AsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mangler.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/Mips.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/Mips.td user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsCallingConv.td user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsFrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsISelDAGToDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsInstrFormats.td user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsMCSymbolRefExpr.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsMCSymbolRefExpr.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsMachineFunction.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsSubtarget.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/MCTargetDesc/PTXMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTX.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTX.td user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXISelDAGToDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXInstrFormats.td user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXIntrinsicInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXMCAsmStreamer.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXMFInfoExtract.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXMachineFunctionInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXRegisterInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXSubtarget.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/PTXTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/PTX/TargetInfo/PTXTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPC.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPC.td user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCCodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/SparcAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/Target.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/TargetData.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/TargetFrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/TargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/TargetRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/AsmParser/X86AsmLexer.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.c user/attilio/vmcontention/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/Utils/X86ShuffleDecode.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86CodeEmitter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86ELFWriterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86FastISel.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86FrameLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86ISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrCompiler.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrExtension.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrFormats.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrSSE.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrSystem.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86InstrVMX.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86RegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86RegisterInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86Subtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86Subtarget.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86TargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.td user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreSubtarget.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp user/attilio/vmcontention/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/IPO.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/InlineAlways.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/Inliner.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/IPO/StripSymbols.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombine.h user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Instrumentation/EdgeProfiling.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Instrumentation/OptimalEdgeProfiling.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Instrumentation/PathProfiling.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Instrumentation/ProfilingUtils.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/CodeGenPrepare.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/GVN.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/LICM.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/ObjCARC.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/SimplifyLibCalls.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Scalar/Sink.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/AddrModeMatcher.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/BuildLibCalls.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/Local.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/LowerExpectIntrinsic.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/LowerInvoke.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp user/attilio/vmcontention/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/AsmWriter.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/Attributes.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/AutoUpgrade.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/BasicBlock.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/ConstantFold.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/ConstantFold.h user/attilio/vmcontention/contrib/llvm/lib/VMCore/Constants.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/ConstantsContext.h user/attilio/vmcontention/contrib/llvm/lib/VMCore/Core.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/DebugLoc.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/Function.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/Globals.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/IRBuilder.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/InlineAsm.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/Instruction.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/Instructions.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/LLVMContextImpl.h user/attilio/vmcontention/contrib/llvm/lib/VMCore/Module.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/PassManager.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/PassRegistry.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/Type.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/Value.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/ValueTypes.cpp user/attilio/vmcontention/contrib/llvm/lib/VMCore/Verifier.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang-c/Index.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMT.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/ARCMigrate/ARCMTActions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/ARCMigrate/FileRemapper.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/APValue.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/ASTDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/ASTImporter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/Attr.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/Decl.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/Expr.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/Mangle.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/ParentMap.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/Stmt.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/Type.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/TypeVisitor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/FormatString.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ReachableCode.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/UninitializedValues.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/DomainSpecific/CocoaConventions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowSolver.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/FlowSensitive/DataflowValues.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Support/BlkExprDeclBitVector.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Visitors/CFGRecStmtDeclVisitor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Visitors/CFGRecStmtVisitor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Analysis/Visitors/CFGStmtVisitor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/Attr.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DelayedCleanupPool.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/FileManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/MacroBuilder.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/OnDiskHashTable.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/PartialDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/PrettyStackTrace.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/StmtNodes.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Basic/VersionTuple.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/CodeGen/BackendUtil.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenAction.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Action.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Arg.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/ArgList.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Driver.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/DriverDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Job.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/OptTable.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Option.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Options.td user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Tool.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Types.def user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Driver/Util.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/ASTConsumers.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/Analyses.def user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/AnalyzerOptions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInvocation.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/DiagnosticOptions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/FrontendAction.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/FrontendDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/HeaderSearchOptions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/LogDiagnosticPrinter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/PreprocessorOptions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticPrinter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Frontend/Utils.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Index/ASTLocation.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Index/CallGraph.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Index/Entity.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Index/Handlers.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Index/TranslationUnit.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/CodeCompletionHandler.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/DirectoryLookup.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/HeaderMap.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/LexDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/PTHManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/Token.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/TokenConcatenation.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Parse/ParseDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Parse/Parser.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Rewrite/ASTConsumers.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Rewrite/FixItRewriter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Rewrite/FrontendActions.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Rewrite/Rewriter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Rewrite/Rewriters.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/AnalysisBasedWarnings.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/CXXFieldCollector.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/DelayedDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Designator.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/ExternalSemaSource.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/IdentifierResolver.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Initialization.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Overload.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/ParsedTemplate.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/PrettyDeclStackTrace.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Scope.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Sema.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/SemaDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/Template.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/TemplateDeduction.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Sema/TypoCorrection.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/ASTDeserializationListener.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/Serialization/ChainedIncludesSource.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Checker.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/CheckerManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngineBuilders.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ObjCMessage.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h user/attilio/vmcontention/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Frontend/FrontendActions.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMT.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/ARCMTActions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/FileRemapper.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/Internals.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransARCAssign.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransAutoreleasePool.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransBlockObjCVariable.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransProperties.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnbridgedCasts.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/TransformActions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/ARCMigrate/Transforms.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/APValue.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ASTDiagnostic.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/Decl.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/DumpXML.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/Expr.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/InheritViz.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/Mangle.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/ParentMap.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/Stmt.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/StmtDumper.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/Type.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/AnalysisContext.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/CFGReachabilityAnalysis.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/CFGStmtMap.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/FormatString.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/PseudoConstantAnalysis.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/SourceLocation.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/Targets.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/Version.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Basic/VersionTuple.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCall.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGException.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGObjCGNU.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGRTTI.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayout.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Action.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/ArgList.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Driver.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/HostInfo.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Job.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/OptTable.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Option.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Phases.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/ToolChains.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/ToolChains.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Tools.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Tools.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Driver/Types.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/ASTConsumers.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/ASTMerge.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/CacheTokens.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/CreateInvocationFromCommandLine.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/DependencyFile.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/FrontendOptions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/HeaderIncludeGen.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/LangStandards.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/LogDiagnosticPrinter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticPrinter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Frontend/Warnings.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Headers/avxintrin.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Headers/emmintrin.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Headers/float.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Headers/mm_malloc.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Headers/tgmath.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Index/ASTLocation.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Index/CallGraph.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Index/Entity.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Index/EntityImpl.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Index/GlobalSelector.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/HeaderMap.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/MacroArgs.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/PPCaching.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/PPExpressions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/ScratchBuffer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseAST.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseInit.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/Parser.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Parse/RAIIObjectsForParser.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/DeltaTree.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/FixItRewriter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/FrontendActions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/HTMLPrint.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/RewriteMacros.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/RewriteObjC.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/RewriteRope.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/RewriteTest.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Rewrite/Rewriter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/DelayedDiagnostic.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/IdentifierResolver.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/Sema.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaAccess.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaCXXScopeSpec.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/TargetAttributesSema.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/ChainedIncludesSource.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/Serialization/GeneratePCH.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AdjustedReturnValueChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/AttrNonNullChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BuiltinFunctionChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastSizeChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CastToStructChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCInstMethSignature.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSizeofPointer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/Checkers.td user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ChrootChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ClangSACheckers.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/FixedAddressChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdempotentOperationChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IteratorsChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/LLVMConventionsChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MacOSXAPIChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSAutoreleasePoolChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NoReturnFunctionChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/OSAtomicChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCAtSyncChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCUnusedIVarsChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerArithChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PointerSubChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnPointerRangeChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ReturnUndefChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StreamChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefBranchChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefCapturedBlockVarChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedArraySubscriptChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnixAPIChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AggExprVisitor.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicConstraintManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BlockCounter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExplodedGraph.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ObjCMessage.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/TextPathDiagnostics.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.h user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/CheckerRegistration.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/FrontendActions.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/tools/driver/cc1_main.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp user/attilio/vmcontention/contrib/llvm/tools/clang/tools/driver/driver.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/ARMDecoderEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/ARMDecoderEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/AsmMatcherEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/AsmWriterEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/AsmWriterInst.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/CallingConvEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeEmitterGen.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeEmitterGen.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeGenInstruction.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeGenRegisters.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeGenTarget.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/CodeGenTarget.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/DAGISelEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/DisassemblerEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/DisassemblerEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/EDEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/EDEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/FastISelEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/FastISelEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/FixedLenDecoderEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/InstrEnumEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/InstrEnumEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/InstrInfoEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/IntrinsicEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/PseudoLoweringEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/PseudoLoweringEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/RegisterInfoEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/SetTheory.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/SubtargetEmitter.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/TableGen.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/X86DisassemblerTables.h user/attilio/vmcontention/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp user/attilio/vmcontention/contrib/llvm/utils/TableGen/X86RecognizableInstr.h user/attilio/vmcontention/contrib/tzdata/africa user/attilio/vmcontention/contrib/tzdata/asia user/attilio/vmcontention/contrib/tzdata/australasia user/attilio/vmcontention/contrib/tzdata/europe user/attilio/vmcontention/contrib/tzdata/northamerica user/attilio/vmcontention/contrib/tzdata/southamerica user/attilio/vmcontention/contrib/tzdata/zone.tab user/attilio/vmcontention/etc/defaults/periodic.conf user/attilio/vmcontention/etc/devd/Makefile user/attilio/vmcontention/etc/devd/usb.conf user/attilio/vmcontention/etc/periodic/daily/220.backup-pkgdb user/attilio/vmcontention/etc/portsnap.conf user/attilio/vmcontention/etc/rc.d/dhclient user/attilio/vmcontention/gnu/usr.bin/binutils/objcopy/objcopy.1 user/attilio/vmcontention/gnu/usr.bin/binutils/strip/strip.1 user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/freebsd-native.h user/attilio/vmcontention/include/complex.h user/attilio/vmcontention/include/ieeefp.h user/attilio/vmcontention/lib/clang/Makefile user/attilio/vmcontention/lib/clang/clang.build.mk user/attilio/vmcontention/lib/clang/include/clang/Basic/Version.inc user/attilio/vmcontention/lib/clang/include/llvm/Config/config.h user/attilio/vmcontention/lib/clang/include/llvm/Config/llvm-config.h user/attilio/vmcontention/lib/clang/libclanganalysis/Makefile user/attilio/vmcontention/lib/clang/libclangarcmigrate/Makefile user/attilio/vmcontention/lib/clang/libclangast/Makefile user/attilio/vmcontention/lib/clang/libclangbasic/Makefile user/attilio/vmcontention/lib/clang/libclangcodegen/Makefile user/attilio/vmcontention/lib/clang/libclangfrontend/Makefile user/attilio/vmcontention/lib/clang/libclangparse/Makefile user/attilio/vmcontention/lib/clang/libclangsema/Makefile user/attilio/vmcontention/lib/clang/libclangserialization/Makefile user/attilio/vmcontention/lib/clang/libclangstaticanalyzercheckers/Makefile user/attilio/vmcontention/lib/clang/libclangstaticanalyzercore/Makefile user/attilio/vmcontention/lib/clang/libllvmarmcodegen/Makefile user/attilio/vmcontention/lib/clang/libllvmarmdesc/Makefile user/attilio/vmcontention/lib/clang/libllvmarmdisassembler/Makefile user/attilio/vmcontention/lib/clang/libllvmcodegen/Makefile user/attilio/vmcontention/lib/clang/libllvmipo/Makefile user/attilio/vmcontention/lib/clang/libllvmmc/Makefile user/attilio/vmcontention/lib/clang/libllvmmcparser/Makefile user/attilio/vmcontention/lib/clang/libllvmmipscodegen/Makefile user/attilio/vmcontention/lib/clang/libllvmmipsdesc/Makefile user/attilio/vmcontention/lib/clang/libllvmpowerpccodegen/Makefile user/attilio/vmcontention/lib/clang/libllvmpowerpcdesc/Makefile user/attilio/vmcontention/lib/clang/libllvmscalaropts/Makefile user/attilio/vmcontention/lib/clang/libllvmtarget/Makefile user/attilio/vmcontention/lib/clang/libllvmtransformutils/Makefile user/attilio/vmcontention/lib/clang/libllvmx86codegen/Makefile user/attilio/vmcontention/lib/clang/libllvmx86desc/Makefile user/attilio/vmcontention/lib/clang/libllvmx86disassembler/Makefile user/attilio/vmcontention/lib/libarchive/archive_hash.h user/attilio/vmcontention/lib/libarchive/archive_read_disk.3 user/attilio/vmcontention/lib/libarchive/config_freebsd.h user/attilio/vmcontention/lib/libc/Versions.def user/attilio/vmcontention/lib/libc/amd64/Symbol.map user/attilio/vmcontention/lib/libc/amd64/gen/Makefile.inc user/attilio/vmcontention/lib/libc/arm/Symbol.map user/attilio/vmcontention/lib/libc/arm/gen/Makefile.inc user/attilio/vmcontention/lib/libc/gen/Makefile.inc user/attilio/vmcontention/lib/libc/gen/Symbol.map user/attilio/vmcontention/lib/libc/gen/getutxent.3 user/attilio/vmcontention/lib/libc/i386/Symbol.map user/attilio/vmcontention/lib/libc/i386/gen/Makefile.inc user/attilio/vmcontention/lib/libc/ia64/Symbol.map user/attilio/vmcontention/lib/libc/ia64/gen/Makefile.inc user/attilio/vmcontention/lib/libc/mips/Symbol.map user/attilio/vmcontention/lib/libc/mips/gen/Makefile.inc user/attilio/vmcontention/lib/libc/net/Symbol.map user/attilio/vmcontention/lib/libc/powerpc/Symbol.map user/attilio/vmcontention/lib/libc/powerpc/gen/Makefile.inc user/attilio/vmcontention/lib/libc/powerpc64/Symbol.map user/attilio/vmcontention/lib/libc/powerpc64/gen/Makefile.inc user/attilio/vmcontention/lib/libc/sparc64/Symbol.map user/attilio/vmcontention/lib/libc/sparc64/gen/Makefile.inc user/attilio/vmcontention/lib/libc/stdio/flags.c user/attilio/vmcontention/lib/libc/stdio/fopen.3 user/attilio/vmcontention/lib/libc/sys/ktrace.2 user/attilio/vmcontention/lib/libelf/elf_update.3 user/attilio/vmcontention/lib/libfetch/common.c user/attilio/vmcontention/lib/libfetch/common.h user/attilio/vmcontention/lib/libfetch/fetch.3 user/attilio/vmcontention/lib/libfetch/fetch.c user/attilio/vmcontention/lib/libfetch/fetch.h user/attilio/vmcontention/lib/libfetch/file.c user/attilio/vmcontention/lib/libfetch/ftp.c user/attilio/vmcontention/lib/libfetch/http.c user/attilio/vmcontention/lib/libgssapi/Symbol.map user/attilio/vmcontention/lib/libipsec/ipsec_strerror.3 user/attilio/vmcontention/lib/libmp/Symbol.map user/attilio/vmcontention/lib/libncp/ncpl_bind.c user/attilio/vmcontention/lib/libpam/libpam/Makefile user/attilio/vmcontention/lib/libpmc/libpmc.c user/attilio/vmcontention/lib/libpmc/pmc.3 user/attilio/vmcontention/lib/libpmc/pmc.core.3 user/attilio/vmcontention/lib/libpmc/pmc.h user/attilio/vmcontention/lib/libpmc/pmc_configure_logfile.3 user/attilio/vmcontention/lib/libsdp/sdp.h user/attilio/vmcontention/lib/libulog/Symbol.map user/attilio/vmcontention/lib/libusb/libusb.3 user/attilio/vmcontention/lib/libusb/libusb10.c user/attilio/vmcontention/lib/libusb/libusb20.3 user/attilio/vmcontention/lib/libutil/pidfile.3 user/attilio/vmcontention/lib/libutil/pidfile.c user/attilio/vmcontention/lib/msun/Makefile user/attilio/vmcontention/lib/msun/Symbol.map user/attilio/vmcontention/lib/msun/amd64/Symbol.map user/attilio/vmcontention/lib/msun/amd64/fenv.c user/attilio/vmcontention/lib/msun/amd64/fenv.h user/attilio/vmcontention/lib/msun/arm/Symbol.map user/attilio/vmcontention/lib/msun/arm/fenv.c user/attilio/vmcontention/lib/msun/arm/fenv.h user/attilio/vmcontention/lib/msun/bsdsrc/b_exp.c user/attilio/vmcontention/lib/msun/i387/Symbol.map user/attilio/vmcontention/lib/msun/i387/fenv.c user/attilio/vmcontention/lib/msun/i387/fenv.h user/attilio/vmcontention/lib/msun/ia64/Symbol.map user/attilio/vmcontention/lib/msun/ia64/fenv.c user/attilio/vmcontention/lib/msun/ia64/fenv.h user/attilio/vmcontention/lib/msun/man/complex.3 user/attilio/vmcontention/lib/msun/man/cos.3 user/attilio/vmcontention/lib/msun/man/cosh.3 user/attilio/vmcontention/lib/msun/man/fenv.3 user/attilio/vmcontention/lib/msun/man/ieee.3 user/attilio/vmcontention/lib/msun/man/math.3 user/attilio/vmcontention/lib/msun/man/sin.3 user/attilio/vmcontention/lib/msun/man/sinh.3 user/attilio/vmcontention/lib/msun/man/tan.3 user/attilio/vmcontention/lib/msun/man/tanh.3 user/attilio/vmcontention/lib/msun/mips/Symbol.map user/attilio/vmcontention/lib/msun/mips/fenv.c user/attilio/vmcontention/lib/msun/mips/fenv.h user/attilio/vmcontention/lib/msun/powerpc/Symbol.map user/attilio/vmcontention/lib/msun/powerpc/fenv.c user/attilio/vmcontention/lib/msun/powerpc/fenv.h user/attilio/vmcontention/lib/msun/sparc64/Symbol.map user/attilio/vmcontention/lib/msun/sparc64/fenv.c user/attilio/vmcontention/lib/msun/sparc64/fenv.h user/attilio/vmcontention/lib/msun/src/e_cosh.c user/attilio/vmcontention/lib/msun/src/e_coshf.c user/attilio/vmcontention/lib/msun/src/e_exp.c user/attilio/vmcontention/lib/msun/src/e_expf.c user/attilio/vmcontention/lib/msun/src/e_hypot.c user/attilio/vmcontention/lib/msun/src/e_hypotf.c user/attilio/vmcontention/lib/msun/src/e_hypotl.c user/attilio/vmcontention/lib/msun/src/e_lgamma_r.c user/attilio/vmcontention/lib/msun/src/e_lgammaf_r.c user/attilio/vmcontention/lib/msun/src/e_log10.c user/attilio/vmcontention/lib/msun/src/e_log10f.c user/attilio/vmcontention/lib/msun/src/e_log2.c user/attilio/vmcontention/lib/msun/src/e_log2f.c user/attilio/vmcontention/lib/msun/src/e_pow.c user/attilio/vmcontention/lib/msun/src/e_powf.c user/attilio/vmcontention/lib/msun/src/e_sinh.c user/attilio/vmcontention/lib/msun/src/e_sinhf.c user/attilio/vmcontention/lib/msun/src/k_log.h user/attilio/vmcontention/lib/msun/src/k_logf.h user/attilio/vmcontention/lib/msun/src/math.h user/attilio/vmcontention/lib/msun/src/math_private.h user/attilio/vmcontention/lib/msun/src/s_cexp.c user/attilio/vmcontention/lib/msun/src/s_cexpf.c user/attilio/vmcontention/lib/msun/src/s_expm1.c user/attilio/vmcontention/lib/msun/src/s_expm1f.c user/attilio/vmcontention/lib/msun/src/s_fma.c user/attilio/vmcontention/lib/msun/src/s_fmaf.c user/attilio/vmcontention/lib/msun/src/s_fmal.c user/attilio/vmcontention/libexec/rtld-elf/amd64/rtld_start.S user/attilio/vmcontention/libexec/rtld-elf/i386/reloc.c user/attilio/vmcontention/libexec/rtld-elf/i386/rtld_start.S user/attilio/vmcontention/libexec/rtld-elf/rtld.c user/attilio/vmcontention/release/amd64/make-memstick.sh user/attilio/vmcontention/release/i386/make-memstick.sh user/attilio/vmcontention/sbin/atacontrol/atacontrol.8 user/attilio/vmcontention/sbin/atacontrol/atacontrol.c user/attilio/vmcontention/sbin/atm/atmconfig/Makefile user/attilio/vmcontention/sbin/dhclient/Makefile user/attilio/vmcontention/sbin/dhclient/dhclient.8 user/attilio/vmcontention/sbin/dhclient/dhclient.c user/attilio/vmcontention/sbin/dhclient/dhcpd.h user/attilio/vmcontention/sbin/dhclient/errwarn.c user/attilio/vmcontention/sbin/dump/dump.h user/attilio/vmcontention/sbin/dump/itime.c user/attilio/vmcontention/sbin/geom/class/part/gpart.8 user/attilio/vmcontention/sbin/hastd/hast.conf.5 user/attilio/vmcontention/sbin/hastd/hast.h user/attilio/vmcontention/sbin/hastd/hastd.c user/attilio/vmcontention/sbin/hastd/parse.y user/attilio/vmcontention/sbin/hastd/token.l user/attilio/vmcontention/sbin/init/init.8 user/attilio/vmcontention/sbin/tunefs/tunefs.c user/attilio/vmcontention/secure/lib/libcrypto/man/engine.3 user/attilio/vmcontention/secure/usr.bin/openssl/man/ca.1 user/attilio/vmcontention/secure/usr.bin/openssl/man/dgst.1 user/attilio/vmcontention/share/doc/psd/03.iosys/iosys user/attilio/vmcontention/share/doc/psd/23.rpc/rpc.prog.ms user/attilio/vmcontention/share/doc/psd/24.xdr/xdr.nts.ms user/attilio/vmcontention/share/doc/psd/27.nfsrpc/nfs.rfc.ms user/attilio/vmcontention/share/man/man4/dc.4 user/attilio/vmcontention/share/man/man4/em.4 user/attilio/vmcontention/share/man/man4/igb.4 user/attilio/vmcontention/share/man/man4/man4.powerpc/Makefile user/attilio/vmcontention/share/man/man4/man4.powerpc/akbd.4 user/attilio/vmcontention/share/man/man7/build.7 user/attilio/vmcontention/share/man/man9/Makefile user/attilio/vmcontention/share/man/man9/memguard.9 user/attilio/vmcontention/share/man/man9/psignal.9 user/attilio/vmcontention/share/man/man9/sleepqueue.9 user/attilio/vmcontention/share/misc/committers-doc.dot user/attilio/vmcontention/share/misc/committers-ports.dot user/attilio/vmcontention/share/misc/committers-src.dot user/attilio/vmcontention/share/misc/iso3166 user/attilio/vmcontention/share/mk/bsd.dep.mk user/attilio/vmcontention/share/mk/bsd.own.mk user/attilio/vmcontention/share/mk/bsd.port.mk user/attilio/vmcontention/sys/amd64/amd64/sys_machdep.c user/attilio/vmcontention/sys/amd64/conf/GENERIC user/attilio/vmcontention/sys/amd64/include/ieeefp.h user/attilio/vmcontention/sys/amd64/include/proc.h user/attilio/vmcontention/sys/arm/arm/machdep.c user/attilio/vmcontention/sys/arm/arm/sys_machdep.c user/attilio/vmcontention/sys/arm/include/asmacros.h user/attilio/vmcontention/sys/arm/include/ieeefp.h user/attilio/vmcontention/sys/arm/include/proc.h user/attilio/vmcontention/sys/arm/include/sysarch.h user/attilio/vmcontention/sys/arm/xscale/ixp425/cambria_gpio.c user/attilio/vmcontention/sys/boot/arm/at91/boot2/boot2.c user/attilio/vmcontention/sys/boot/arm/ixp425/boot2/boot2.c user/attilio/vmcontention/sys/boot/common/disk.c user/attilio/vmcontention/sys/boot/i386/boot2/boot2.c user/attilio/vmcontention/sys/boot/i386/gptboot/gptboot.c user/attilio/vmcontention/sys/boot/i386/zfsboot/zfsboot.c user/attilio/vmcontention/sys/boot/pc98/boot2/boot2.c user/attilio/vmcontention/sys/boot/powerpc/boot1.chrp/generate-hfs.sh user/attilio/vmcontention/sys/boot/zfs/zfsimpl.c user/attilio/vmcontention/sys/cddl/boot/zfs/zfssubr.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu_tx.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sa.c user/attilio/vmcontention/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_file.c user/attilio/vmcontention/sys/cddl/dev/dtrace/dtrace_debug.c user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_misc.c user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_proto.h user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscall.h user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_syscalls.c user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_sysent.c user/attilio/vmcontention/sys/compat/freebsd32/freebsd32_systrace_args.c user/attilio/vmcontention/sys/compat/freebsd32/syscalls.master user/attilio/vmcontention/sys/compat/linux/linux_uid16.c user/attilio/vmcontention/sys/conf/Makefile.mips user/attilio/vmcontention/sys/conf/NOTES user/attilio/vmcontention/sys/conf/files user/attilio/vmcontention/sys/conf/files.mips user/attilio/vmcontention/sys/conf/files.powerpc user/attilio/vmcontention/sys/contrib/pf/net/if_pflog.c user/attilio/vmcontention/sys/contrib/pf/net/if_pfsync.c user/attilio/vmcontention/sys/contrib/pf/net/pf.c user/attilio/vmcontention/sys/contrib/pf/net/pf_ioctl.c user/attilio/vmcontention/sys/contrib/pf/net/pf_table.c user/attilio/vmcontention/sys/contrib/pf/net/pfvar.h user/attilio/vmcontention/sys/dev/aac/aac_cam.c user/attilio/vmcontention/sys/dev/acpica/acpi.c user/attilio/vmcontention/sys/dev/acpica/acpi_pcib_acpi.c user/attilio/vmcontention/sys/dev/acpica/acpivar.h user/attilio/vmcontention/sys/dev/adb/adb_kbd.c user/attilio/vmcontention/sys/dev/age/if_age.c user/attilio/vmcontention/sys/dev/alc/if_alc.c user/attilio/vmcontention/sys/dev/ale/if_ale.c user/attilio/vmcontention/sys/dev/asr/asr.c user/attilio/vmcontention/sys/dev/ata/ata-all.c user/attilio/vmcontention/sys/dev/ath/ath_dfs/null/dfs_null.c user/attilio/vmcontention/sys/dev/ath/ath_hal/ah.c user/attilio/vmcontention/sys/dev/ath/ath_hal/ah.h user/attilio/vmcontention/sys/dev/ath/ath_hal/ah_internal.h user/attilio/vmcontention/sys/dev/ath/ath_hal/ar5212/ar5212_reset.c user/attilio/vmcontention/sys/dev/ath/ath_hal/ar5212/ar5212reg.h user/attilio/vmcontention/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c user/attilio/vmcontention/sys/dev/ath/ath_hal/ar9001/ar9130_attach.c user/attilio/vmcontention/sys/dev/ath/ath_hal/ar9001/ar9160_attach.c user/attilio/vmcontention/sys/dev/ath/if_ath.c user/attilio/vmcontention/sys/dev/ath/if_ath_pci.c user/attilio/vmcontention/sys/dev/bce/if_bce.c user/attilio/vmcontention/sys/dev/bce/if_bcereg.h user/attilio/vmcontention/sys/dev/bwi/bwiphy.c user/attilio/vmcontention/sys/dev/bwi/if_bwi.c user/attilio/vmcontention/sys/dev/bwn/if_bwn.c user/attilio/vmcontention/sys/dev/bxe/bxe_link.c user/attilio/vmcontention/sys/dev/e1000/e1000_82575.c user/attilio/vmcontention/sys/dev/esp/esp_sbus.c user/attilio/vmcontention/sys/dev/esp/ncr53c9x.c user/attilio/vmcontention/sys/dev/esp/ncr53c9xreg.h user/attilio/vmcontention/sys/dev/esp/ncr53c9xvar.h user/attilio/vmcontention/sys/dev/et/if_et.c user/attilio/vmcontention/sys/dev/fdt/fdtbus.c user/attilio/vmcontention/sys/dev/gpio/gpioc.c user/attilio/vmcontention/sys/dev/hptiop/hptiop.c user/attilio/vmcontention/sys/dev/hwpmc/hwpmc_logging.c user/attilio/vmcontention/sys/dev/hwpmc/hwpmc_mod.c user/attilio/vmcontention/sys/dev/iicbus/iic.c user/attilio/vmcontention/sys/dev/iscsi/initiator/iscsi_subr.c user/attilio/vmcontention/sys/dev/isp/DriverManual.txt user/attilio/vmcontention/sys/dev/isp/isp_freebsd.h user/attilio/vmcontention/sys/dev/iwn/if_iwn.c user/attilio/vmcontention/sys/dev/ksyms/ksyms.c user/attilio/vmcontention/sys/dev/lge/if_lge.c user/attilio/vmcontention/sys/dev/lge/if_lgereg.h user/attilio/vmcontention/sys/dev/mfi/mfi_cam.c user/attilio/vmcontention/sys/dev/mps/mps_sas.c user/attilio/vmcontention/sys/dev/mpt/mpt_cam.c user/attilio/vmcontention/sys/dev/msk/if_msk.c user/attilio/vmcontention/sys/dev/nfe/if_nfe.c user/attilio/vmcontention/sys/dev/nge/if_nge.c user/attilio/vmcontention/sys/dev/nve/if_nve.c user/attilio/vmcontention/sys/dev/ofw/ofw_fdt.c user/attilio/vmcontention/sys/dev/ppbus/ppb_msq.c user/attilio/vmcontention/sys/dev/puc/pucdata.c user/attilio/vmcontention/sys/dev/re/if_re.c user/attilio/vmcontention/sys/dev/sge/if_sge.c user/attilio/vmcontention/sys/dev/siba/siba_bwn.c user/attilio/vmcontention/sys/dev/sis/if_sis.c user/attilio/vmcontention/sys/dev/stge/if_stge.c user/attilio/vmcontention/sys/dev/tws/tws.c user/attilio/vmcontention/sys/dev/usb/net/if_aue.c user/attilio/vmcontention/sys/dev/usb/net/if_axe.c user/attilio/vmcontention/sys/dev/usb/net/if_mos.c user/attilio/vmcontention/sys/dev/usb/net/if_rue.c user/attilio/vmcontention/sys/dev/usb/net/if_udav.c user/attilio/vmcontention/sys/dev/usb/quirk/usb_quirk.c user/attilio/vmcontention/sys/dev/usb/serial/usb_serial.c user/attilio/vmcontention/sys/dev/usb/usbdevs user/attilio/vmcontention/sys/dev/usb/wlan/if_rum.c user/attilio/vmcontention/sys/dev/usb/wlan/if_run.c user/attilio/vmcontention/sys/dev/vge/if_vge.c user/attilio/vmcontention/sys/dev/vkbd/vkbd.c user/attilio/vmcontention/sys/dev/vr/if_vr.c user/attilio/vmcontention/sys/dev/vte/if_vte.c user/attilio/vmcontention/sys/dev/vxge/include/vxgehal-config.h user/attilio/vmcontention/sys/dev/vxge/include/vxgehal-ll.h user/attilio/vmcontention/sys/dev/vxge/vxgehal/vxgehal-ring.c user/attilio/vmcontention/sys/fs/portalfs/portal_vnops.c user/attilio/vmcontention/sys/fs/unionfs/union_vnops.c user/attilio/vmcontention/sys/geom/part/g_part_vtoc8.c user/attilio/vmcontention/sys/i386/conf/GENERIC user/attilio/vmcontention/sys/i386/i386/sys_machdep.c user/attilio/vmcontention/sys/i386/include/ieeefp.h user/attilio/vmcontention/sys/i386/include/proc.h user/attilio/vmcontention/sys/ia64/conf/GENERIC user/attilio/vmcontention/sys/ia64/include/ieeefp.h user/attilio/vmcontention/sys/ia64/include/proc.h user/attilio/vmcontention/sys/kern/imgact_elf.c user/attilio/vmcontention/sys/kern/kern_descrip.c user/attilio/vmcontention/sys/kern/kern_ktrace.c user/attilio/vmcontention/sys/kern/kern_malloc.c user/attilio/vmcontention/sys/kern/subr_bus.c user/attilio/vmcontention/sys/kern/subr_prf.c user/attilio/vmcontention/sys/kern/subr_witness.c user/attilio/vmcontention/sys/kern/sys_capability.c user/attilio/vmcontention/sys/kern/vfs_lookup.c user/attilio/vmcontention/sys/kern/vfs_mount.c user/attilio/vmcontention/sys/kgssapi/krb5/krb5_mech.c user/attilio/vmcontention/sys/mips/atheros/if_arge.c user/attilio/vmcontention/sys/mips/conf/XLP user/attilio/vmcontention/sys/mips/conf/XLP64 user/attilio/vmcontention/sys/mips/idt/if_kr.c user/attilio/vmcontention/sys/mips/include/bus.h user/attilio/vmcontention/sys/mips/include/ieeefp.h user/attilio/vmcontention/sys/mips/include/intr_machdep.h user/attilio/vmcontention/sys/mips/include/md_var.h user/attilio/vmcontention/sys/mips/include/proc.h user/attilio/vmcontention/sys/mips/mips/exception.S user/attilio/vmcontention/sys/mips/mips/machdep.c user/attilio/vmcontention/sys/mips/mips/mem.c user/attilio/vmcontention/sys/mips/nlm/bus_space_rmi.c user/attilio/vmcontention/sys/mips/nlm/cms.c user/attilio/vmcontention/sys/mips/nlm/uart_cpu_xlp.c user/attilio/vmcontention/sys/mips/nlm/xlp_machdep.c user/attilio/vmcontention/sys/modules/fxp/Makefile user/attilio/vmcontention/sys/modules/mii/Makefile user/attilio/vmcontention/sys/modules/usb/rue/Makefile user/attilio/vmcontention/sys/modules/xl/Makefile user/attilio/vmcontention/sys/net/if.h user/attilio/vmcontention/sys/net/if_tap.c user/attilio/vmcontention/sys/net/if_tun.c user/attilio/vmcontention/sys/net80211/ieee80211_tdma.c user/attilio/vmcontention/sys/netgraph/ng_ipfw.c user/attilio/vmcontention/sys/netinet/in.c user/attilio/vmcontention/sys/netinet/in.h user/attilio/vmcontention/sys/netinet/in_debug.c user/attilio/vmcontention/sys/netinet/in_var.h user/attilio/vmcontention/sys/netinet/ip_carp.c user/attilio/vmcontention/sys/netinet/ip_input.c user/attilio/vmcontention/sys/netinet/ipfw/dummynet.txt user/attilio/vmcontention/sys/netinet/sctp_pcb.c user/attilio/vmcontention/sys/netinet/sctp_structs.h user/attilio/vmcontention/sys/netinet/sctp_usrreq.c user/attilio/vmcontention/sys/netinet/sctputil.c user/attilio/vmcontention/sys/netinet/tcp.h user/attilio/vmcontention/sys/netinet/tcp_input.c user/attilio/vmcontention/sys/netinet/tcp_output.c user/attilio/vmcontention/sys/netinet/tcp_reass.c user/attilio/vmcontention/sys/netinet/tcp_timer.c user/attilio/vmcontention/sys/netinet/tcp_usrreq.c user/attilio/vmcontention/sys/netinet/tcp_var.h user/attilio/vmcontention/sys/netinet/udp_var.h user/attilio/vmcontention/sys/netinet6/icmp6.c user/attilio/vmcontention/sys/netinet6/in6.c user/attilio/vmcontention/sys/netinet6/nd6.c user/attilio/vmcontention/sys/netinet6/nd6_nbr.c user/attilio/vmcontention/sys/netipsec/key.c user/attilio/vmcontention/sys/netncp/ncp_lib.h user/attilio/vmcontention/sys/ofed/drivers/infiniband/ulp/sdp/Kconfig user/attilio/vmcontention/sys/pci/if_rl.c user/attilio/vmcontention/sys/powerpc/conf/GENERIC user/attilio/vmcontention/sys/powerpc/include/ieeefp.h user/attilio/vmcontention/sys/powerpc/include/proc.h user/attilio/vmcontention/sys/powerpc/powerpc/bus_machdep.c user/attilio/vmcontention/sys/security/audit/audit_pipe.c user/attilio/vmcontention/sys/security/mac_mls/mac_mls.c user/attilio/vmcontention/sys/sparc64/conf/GENERIC user/attilio/vmcontention/sys/sparc64/include/ieeefp.h user/attilio/vmcontention/sys/sparc64/include/proc.h user/attilio/vmcontention/sys/sparc64/sbus/lsi64854.c user/attilio/vmcontention/sys/sparc64/sbus/lsi64854var.h user/attilio/vmcontention/sys/sparc64/sparc64/sys_machdep.c user/attilio/vmcontention/sys/sys/conf.h user/attilio/vmcontention/sys/sys/ktrace.h user/attilio/vmcontention/sys/sys/pmc.h user/attilio/vmcontention/sys/sys/pmclog.h user/attilio/vmcontention/sys/sys/sysent.h user/attilio/vmcontention/sys/teken/demo/Makefile user/attilio/vmcontention/sys/teken/libteken/Symbol.map user/attilio/vmcontention/sys/teken/teken_subr.h user/attilio/vmcontention/sys/vm/memguard.c user/attilio/vmcontention/sys/vm/memguard.h user/attilio/vmcontention/sys/vm/uma.h user/attilio/vmcontention/sys/vm/uma_core.c user/attilio/vmcontention/sys/vm/vm_phys.c user/attilio/vmcontention/sys/vm/vm_unix.c user/attilio/vmcontention/sys/vm/vnode_pager.c user/attilio/vmcontention/tools/regression/doat/doat.c user/attilio/vmcontention/tools/regression/lib/msun/Makefile user/attilio/vmcontention/tools/regression/lib/msun/test-fma.c user/attilio/vmcontention/tools/regression/lib/msun/test-logarithm.c user/attilio/vmcontention/tools/regression/lib/msun/test-nearbyint.c user/attilio/vmcontention/tools/tools/nanobsd/gateworks/common user/attilio/vmcontention/tools/tools/zfsboottest/Makefile user/attilio/vmcontention/tools/tools/zfsboottest/zfsboottest.c user/attilio/vmcontention/usr.bin/at/Makefile user/attilio/vmcontention/usr.bin/calendar/Makefile user/attilio/vmcontention/usr.bin/calendar/calendars/calendar.freebsd user/attilio/vmcontention/usr.bin/clang/Makefile user/attilio/vmcontention/usr.bin/clang/clang/Makefile user/attilio/vmcontention/usr.bin/clang/clang/clang.1 user/attilio/vmcontention/usr.bin/clang/tblgen/Makefile user/attilio/vmcontention/usr.bin/compress/doc/NOTES user/attilio/vmcontention/usr.bin/elfdump/elfdump.c user/attilio/vmcontention/usr.bin/finger/Makefile user/attilio/vmcontention/usr.bin/finger/lprint.c user/attilio/vmcontention/usr.bin/grep/Makefile user/attilio/vmcontention/usr.bin/grep/file.c user/attilio/vmcontention/usr.bin/grep/grep.c user/attilio/vmcontention/usr.bin/grep/regex/tre-fastmatch.c user/attilio/vmcontention/usr.bin/grep/util.c user/attilio/vmcontention/usr.bin/gzip/Makefile user/attilio/vmcontention/usr.bin/gzip/gzip.1 user/attilio/vmcontention/usr.bin/gzip/gzip.c user/attilio/vmcontention/usr.bin/kdump/Makefile user/attilio/vmcontention/usr.bin/kdump/kdump.c user/attilio/vmcontention/usr.bin/kdump/mkioctls user/attilio/vmcontention/usr.bin/kdump/mksubr user/attilio/vmcontention/usr.bin/ktrace/Makefile user/attilio/vmcontention/usr.bin/ktrace/ktrace.1 user/attilio/vmcontention/usr.bin/ktrace/ktrace.c user/attilio/vmcontention/usr.bin/ktrace/ktrace.h user/attilio/vmcontention/usr.bin/ktrace/subr.c user/attilio/vmcontention/usr.bin/last/Makefile user/attilio/vmcontention/usr.bin/leave/Makefile user/attilio/vmcontention/usr.bin/look/Makefile user/attilio/vmcontention/usr.bin/look/look.c user/attilio/vmcontention/usr.bin/lzmainfo/Makefile user/attilio/vmcontention/usr.bin/m4/Makefile user/attilio/vmcontention/usr.bin/m4/expr.c user/attilio/vmcontention/usr.bin/m4/main.c user/attilio/vmcontention/usr.bin/ncplist/Makefile user/attilio/vmcontention/usr.bin/ncplist/ncplist.c user/attilio/vmcontention/usr.bin/newgrp/newgrp.c user/attilio/vmcontention/usr.bin/nl/Makefile user/attilio/vmcontention/usr.bin/nl/nl.c user/attilio/vmcontention/usr.bin/ruptime/Makefile user/attilio/vmcontention/usr.bin/ruptime/ruptime.c user/attilio/vmcontention/usr.bin/rwho/Makefile user/attilio/vmcontention/usr.bin/rwho/rwho.c user/attilio/vmcontention/usr.bin/script/script.c user/attilio/vmcontention/usr.bin/systat/cmds.c user/attilio/vmcontention/usr.bin/systat/cmdtab.c user/attilio/vmcontention/usr.bin/systat/devs.c user/attilio/vmcontention/usr.bin/systat/fetch.c user/attilio/vmcontention/usr.bin/systat/ifcmds.c user/attilio/vmcontention/usr.bin/systat/ifstat.c user/attilio/vmcontention/usr.bin/systat/keyboard.c user/attilio/vmcontention/usr.bin/systat/mode.c user/attilio/vmcontention/usr.bin/systat/mode.h user/attilio/vmcontention/usr.bin/systat/netstat.c user/attilio/vmcontention/usr.bin/systat/systat.h user/attilio/vmcontention/usr.bin/systat/vmstat.c user/attilio/vmcontention/usr.bin/tar/bsdtar.c user/attilio/vmcontention/usr.bin/tar/bsdtar.h user/attilio/vmcontention/usr.bin/tar/cmdline.c user/attilio/vmcontention/usr.bin/tar/read.c user/attilio/vmcontention/usr.bin/tar/write.c user/attilio/vmcontention/usr.bin/tr/Makefile user/attilio/vmcontention/usr.bin/tr/cset.c user/attilio/vmcontention/usr.bin/tr/str.c user/attilio/vmcontention/usr.bin/truss/Makefile user/attilio/vmcontention/usr.bin/truss/extern.h user/attilio/vmcontention/usr.bin/xzdec/Makefile user/attilio/vmcontention/usr.sbin/bsdinstall/partedit/gpart_ops.c user/attilio/vmcontention/usr.sbin/bsdinstall/scripts/auto user/attilio/vmcontention/usr.sbin/burncd/burncd.8 user/attilio/vmcontention/usr.sbin/burncd/burncd.c user/attilio/vmcontention/usr.sbin/kbdmap/kbdmap.c user/attilio/vmcontention/usr.sbin/makefs/ffs.c user/attilio/vmcontention/usr.sbin/makefs/ffs.h user/attilio/vmcontention/usr.sbin/makefs/ffs/mkfs.c user/attilio/vmcontention/usr.sbin/makefs/makefs.8 user/attilio/vmcontention/usr.sbin/pkg_install/lib/version.c user/attilio/vmcontention/usr.sbin/pmcstat/pmcstat.c user/attilio/vmcontention/usr.sbin/pmcstat/pmcstat_log.c user/attilio/vmcontention/usr.sbin/tcpdump/tcpdump/tcpdump.1 user/attilio/vmcontention/usr.sbin/usbdump/usbdump.c Directory Properties: user/attilio/vmcontention/ (props changed) user/attilio/vmcontention/cddl/contrib/opensolaris/ (props changed) user/attilio/vmcontention/contrib/bind9/ (props changed) user/attilio/vmcontention/contrib/binutils/ (props changed) user/attilio/vmcontention/contrib/bzip2/ (props changed) user/attilio/vmcontention/contrib/com_err/ (props changed) user/attilio/vmcontention/contrib/compiler-rt/ (props changed) user/attilio/vmcontention/contrib/dialog/ (props changed) user/attilio/vmcontention/contrib/ee/ (props changed) user/attilio/vmcontention/contrib/expat/ (props changed) user/attilio/vmcontention/contrib/file/ (props changed) user/attilio/vmcontention/contrib/gcc/ (props changed) user/attilio/vmcontention/contrib/gdb/ (props changed) user/attilio/vmcontention/contrib/gdtoa/ (props changed) user/attilio/vmcontention/contrib/gnu-sort/ (props changed) user/attilio/vmcontention/contrib/groff/ (props changed) user/attilio/vmcontention/contrib/less/ (props changed) user/attilio/vmcontention/contrib/libpcap/ (props changed) user/attilio/vmcontention/contrib/libstdc++/ (props changed) user/attilio/vmcontention/contrib/llvm/ (props changed) user/attilio/vmcontention/contrib/llvm/tools/clang/ (props changed) user/attilio/vmcontention/contrib/ncurses/ (props changed) user/attilio/vmcontention/contrib/netcat/ (props changed) user/attilio/vmcontention/contrib/ntp/ (props changed) user/attilio/vmcontention/contrib/one-true-awk/ (props changed) user/attilio/vmcontention/contrib/openbsm/ (props changed) user/attilio/vmcontention/contrib/openpam/ (props changed) user/attilio/vmcontention/contrib/openresolv/ (props changed) user/attilio/vmcontention/contrib/pf/ (props changed) user/attilio/vmcontention/contrib/sendmail/ (props changed) user/attilio/vmcontention/contrib/tcpdump/ (props changed) user/attilio/vmcontention/contrib/tcsh/ (props changed) user/attilio/vmcontention/contrib/tnftp/ (props changed) user/attilio/vmcontention/contrib/top/ (props changed) user/attilio/vmcontention/contrib/top/install-sh (props changed) user/attilio/vmcontention/contrib/tzcode/stdtime/ (props changed) user/attilio/vmcontention/contrib/tzcode/zic/ (props changed) user/attilio/vmcontention/contrib/tzdata/ (props changed) user/attilio/vmcontention/contrib/wpa/ (props changed) user/attilio/vmcontention/contrib/xz/ (props changed) user/attilio/vmcontention/crypto/heimdal/ (props changed) user/attilio/vmcontention/crypto/openssh/ (props changed) user/attilio/vmcontention/crypto/openssl/ (props changed) user/attilio/vmcontention/gnu/lib/ (props changed) user/attilio/vmcontention/gnu/usr.bin/binutils/ (props changed) user/attilio/vmcontention/gnu/usr.bin/cc/cc_tools/ (props changed) user/attilio/vmcontention/gnu/usr.bin/gdb/ (props changed) user/attilio/vmcontention/lib/libc/ (props changed) user/attilio/vmcontention/lib/libc/stdtime/ (props changed) user/attilio/vmcontention/lib/libutil/ (props changed) user/attilio/vmcontention/lib/libz/ (props changed) user/attilio/vmcontention/sbin/ (props changed) user/attilio/vmcontention/sbin/ipfw/ (props changed) user/attilio/vmcontention/share/mk/bsd.arch.inc.mk (props changed) user/attilio/vmcontention/share/zoneinfo/ (props changed) user/attilio/vmcontention/sys/ (props changed) user/attilio/vmcontention/sys/amd64/include/xen/ (props changed) user/attilio/vmcontention/sys/boot/ (props changed) user/attilio/vmcontention/sys/boot/i386/efi/ (props changed) user/attilio/vmcontention/sys/boot/ia64/efi/ (props changed) user/attilio/vmcontention/sys/boot/ia64/ski/ (props changed) user/attilio/vmcontention/sys/boot/powerpc/boot1.chrp/ (props changed) user/attilio/vmcontention/sys/boot/powerpc/ofw/ (props changed) user/attilio/vmcontention/sys/cddl/contrib/opensolaris/ (props changed) user/attilio/vmcontention/sys/conf/ (props changed) user/attilio/vmcontention/sys/contrib/dev/acpica/ (props changed) user/attilio/vmcontention/sys/contrib/octeon-sdk/ (props changed) user/attilio/vmcontention/sys/contrib/pf/ (props changed) user/attilio/vmcontention/sys/contrib/x86emu/ (props changed) user/attilio/vmcontention/usr.bin/calendar/ (props changed) user/attilio/vmcontention/usr.bin/csup/ (props changed) user/attilio/vmcontention/usr.bin/procstat/ (props changed) user/attilio/vmcontention/usr.sbin/ndiscvt/ (props changed) user/attilio/vmcontention/usr.sbin/rtadvctl/ (props changed) user/attilio/vmcontention/usr.sbin/rtadvd/ (props changed) user/attilio/vmcontention/usr.sbin/rtsold/ (props changed) user/attilio/vmcontention/usr.sbin/zic/ (props changed) Modified: user/attilio/vmcontention/Makefile.inc1 ============================================================================== --- user/attilio/vmcontention/Makefile.inc1 Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/Makefile.inc1 Sat Oct 22 22:56:20 2011 (r226644) @@ -1030,7 +1030,9 @@ _crunchgen= usr.sbin/crunch/crunchgen .if ${MK_CLANG} != "no" _clang_tblgen= \ lib/clang/libllvmsupport \ - usr.bin/clang/tblgen + lib/clang/libllvmtablegen \ + usr.bin/clang/tblgen \ + usr.bin/clang/clang-tblgen .endif .if ${MK_CDDL} != "no" && \ Modified: user/attilio/vmcontention/UPDATING ============================================================================== --- user/attilio/vmcontention/UPDATING Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/UPDATING Sat Oct 22 22:56:20 2011 (r226644) @@ -462,7 +462,7 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10 There's one kernel module for each firmware. Adding "device iwnfw" to the kernel configuration file means including all three firmware images inside the kernel. If you want to include just the one for - your wireless card, use the the devices iwn4965fw, iwn5000fw or + your wireless card, use the devices iwn4965fw, iwn5000fw or iwn5150fw. 20090926: Modified: user/attilio/vmcontention/bin/df/df.1 ============================================================================== --- user/attilio/vmcontention/bin/df/df.1 Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/bin/df/df.1 Sat Oct 22 22:56:20 2011 (r226644) @@ -29,7 +29,7 @@ .\" @(#)df.1 8.3 (Berkeley) 5/8/95 .\" $FreeBSD$ .\" -.Dd November 23, 2008 +.Dd October 18, 2011 .Dt DF 1 .Os .Sh NAME @@ -63,6 +63,7 @@ The following options are available: Show all mount points, including those that were mounted with the .Dv MNT_IGNORE flag. +This is implied for file systems specified on the command line. .It Fl b Use 512-byte blocks rather than the default. Note that Modified: user/attilio/vmcontention/bin/df/df.c ============================================================================== --- user/attilio/vmcontention/bin/df/df.c Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/bin/df/df.c Sat Oct 22 22:56:20 2011 (r226644) @@ -107,7 +107,7 @@ main(int argc, char *argv[]) const char *fstype; char *mntpath, *mntpt; const char **vfslist; - size_t i, mntsize; + int i, mntsize; int ch, rv; fstype = "ufs"; @@ -187,30 +187,21 @@ main(int argc, char *argv[]) argc -= optind; argv += optind; - mntsize = getmntinfo(&mntbuf, MNT_NOWAIT); - bzero(&maxwidths, sizeof(maxwidths)); - for (i = 0; i < mntsize; i++) - update_maxwidths(&maxwidths, &mntbuf[i]); - rv = 0; if (!*argv) { + /* everything (modulo -t) */ + mntsize = getmntinfo(&mntbuf, MNT_NOWAIT); mntsize = regetmntinfo(&mntbuf, mntsize, vfslist); - bzero(&maxwidths, sizeof(maxwidths)); - for (i = 0; i < mntsize; i++) { - if (cflag) - addstat(&totalbuf, &mntbuf[i]); - update_maxwidths(&maxwidths, &mntbuf[i]); - } - if (cflag) - update_maxwidths(&maxwidths, &totalbuf); - for (i = 0; i < mntsize; i++) - if (aflag || (mntbuf[i].f_flags & MNT_IGNORE) == 0) - prtstat(&mntbuf[i], &maxwidths); - if (cflag) - prtstat(&totalbuf, &maxwidths); - exit(rv); + } else { + /* just the filesystems specified on the command line */ + mntbuf = malloc(argc * sizeof(*mntbuf)); + if (mntbuf == 0) + err(1, "malloc()"); + mntsize = 0; + /* continued in for loop below */ } + /* iterate through specified filesystems */ for (; *argv; argv++) { if (stat(*argv, &stbuf) < 0) { if ((mntpt = getmntpt(*argv)) == 0) { @@ -279,14 +270,24 @@ main(int argc, char *argv[]) continue; } - if (argc == 1) { - bzero(&maxwidths, sizeof(maxwidths)); - update_maxwidths(&maxwidths, &statfsbuf); + /* the user asked for it, so ignore the ignore flag */ + statfsbuf.f_flags &= ~MNT_IGNORE; + + /* add to list */ + mntbuf[mntsize++] = statfsbuf; + } + + bzero(&maxwidths, sizeof(maxwidths)); + for (i = 0; i < mntsize; i++) { + if (aflag || (mntbuf[i].f_flags & MNT_IGNORE) == 0) { + update_maxwidths(&maxwidths, &mntbuf[i]); + if (cflag) + addstat(&totalbuf, &mntbuf[i]); } - prtstat(&statfsbuf, &maxwidths); - if (cflag) - addstat(&totalbuf, &statfsbuf); } + for (i = 0; i < mntsize; i++) + if (aflag || (mntbuf[i].f_flags & MNT_IGNORE) == 0) + prtstat(&mntbuf[i], &maxwidths); if (cflag) prtstat(&totalbuf, &maxwidths); return (rv); Modified: user/attilio/vmcontention/bin/ls/ls.c ============================================================================== --- user/attilio/vmcontention/bin/ls/ls.c Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/bin/ls/ls.c Sat Oct 22 22:56:20 2011 (r226644) @@ -44,7 +44,7 @@ static char sccsid[] = "@(#)ls.c 8.5 (Be #include __FBSDID("$FreeBSD$"); -#include +#include #include #include #include @@ -414,8 +414,8 @@ main(int argc, char *argv[]) fts_options |= FTS_WHITEOUT; #endif - /* If -l or -s, figure out block size. */ - if (f_longform || f_size) { + /* If -i, -l or -s, figure out block size. */ + if (f_inode || f_longform || f_size) { if (f_kblocks) blocksize = 2; else { @@ -835,7 +835,7 @@ label_out: d.maxlen = maxlen; if (needstats) { d.btotal = btotal; - d.s_block = snprintf(NULL, 0, "%lu", maxblock); + d.s_block = snprintf(NULL, 0, "%lu", howmany(maxblock, blocksize)); d.s_flags = maxflags; d.s_label = maxlabelstr; d.s_group = maxgroup; Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zdb/zdb.c Sat Oct 22 22:56:20 2011 (r226644) @@ -2190,8 +2190,10 @@ dump_block_stats(spa_t *spa) */ (void) bpobj_iterate_nofree(&spa->spa_deferred_bpobj, count_block_cb, &zcb, NULL); - (void) bpobj_iterate_nofree(&spa->spa_dsl_pool->dp_free_bpobj, - count_block_cb, &zcb, NULL); + if (spa_version(spa) >= SPA_VERSION_DEADLISTS) { + (void) bpobj_iterate_nofree(&spa->spa_dsl_pool->dp_free_bpobj, + count_block_cb, &zcb, NULL); + } if (dump_opt['c'] > 1) flags |= TRAVERSE_PREFETCH_DATA; Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/cmd/zpool/zpool_main.c Sat Oct 22 22:56:20 2011 (r226644) @@ -3377,7 +3377,7 @@ print_scan_status(pool_scan_stat_t *ps) double fraction_done; char processed_buf[7], examined_buf[7], total_buf[7], rate_buf[7]; - (void) printf(gettext(" scan: ")); + (void) printf(gettext(" scan: ")); /* If there's never been a scan, there's not much to say. */ if (ps == NULL || ps->pss_func == POOL_SCAN_NONE || @@ -3457,7 +3457,7 @@ print_scan_status(pool_scan_stat_t *ps) /* * do not print estimated time if hours_left is more than 30 days */ - (void) printf(gettext(" %s scanned out of %s at %s/s"), + (void) printf(gettext(" %s scanned out of %s at %s/s"), examined_buf, total_buf, rate_buf); if (hours_left < (30 * 24)) { (void) printf(gettext(", %lluh%um to go\n"), @@ -3468,10 +3468,10 @@ print_scan_status(pool_scan_stat_t *ps) } if (ps->pss_func == POOL_SCAN_RESILVER) { - (void) printf(gettext(" %s resilvered, %.2f%% done\n"), + (void) printf(gettext(" %s resilvered, %.2f%% done\n"), processed_buf, 100 * fraction_done); } else if (ps->pss_func == POOL_SCAN_SCRUB) { - (void) printf(gettext(" %s repaired, %.2f%% done\n"), + (void) printf(gettext(" %s repaired, %.2f%% done\n"), processed_buf, 100 * fraction_done); } } Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/head/thread.h ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/head/thread.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/head/thread.h Sat Oct 22 22:56:20 2011 (r226644) @@ -76,6 +76,7 @@ static __inline int thr_create(void *stack_base, size_t stack_size, void *(*start_func) (void*), void *arg, long flags, thread_t *new_thread_ID) { + pthread_t dummy; int ret; assert(stack_base == NULL); @@ -85,9 +86,12 @@ thr_create(void *stack_base, size_t stac pthread_attr_t attr; pthread_attr_init(&attr); - if(flags & THR_DETACHED) + if (flags & THR_DETACHED) pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); + if (new_thread_ID == NULL) + new_thread_ID = &dummy; + /* This function ignores the THR_BOUND flag, since NPTL doesn't seem to support PTHREAD_SCOPE_PROCESS */ ret = pthread_create(new_thread_ID, &attr, start_func, arg); Modified: user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c ============================================================================== --- user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/cddl/contrib/opensolaris/lib/libzpool/common/taskq.c Sat Oct 22 22:56:20 2011 (r226644) @@ -87,7 +87,7 @@ again: if ((t = tq->tq_freelist) != NULL } mutex_exit(&tq->tq_lock); - t = kmem_alloc(sizeof (task_t), tqflags); + t = kmem_alloc(sizeof (task_t), tqflags & KM_SLEEP); mutex_enter(&tq->tq_lock); if (t != NULL) Modified: user/attilio/vmcontention/contrib/gcc/config/i386/pmm_malloc.h ============================================================================== --- user/attilio/vmcontention/contrib/gcc/config/i386/pmm_malloc.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/gcc/config/i386/pmm_malloc.h Sat Oct 22 22:56:20 2011 (r226644) @@ -34,7 +34,7 @@ #ifndef __cplusplus extern int posix_memalign (void **, size_t, size_t); #else -extern "C" int posix_memalign (void **, size_t, size_t) throw (); +extern "C" int posix_memalign (void **, size_t, size_t); #endif static __inline void * Modified: user/attilio/vmcontention/contrib/llvm/include/llvm-c/Core.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm-c/Core.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm-c/Core.h Sat Oct 22 22:56:20 2011 (r226644) @@ -115,7 +115,10 @@ typedef enum { LLVMNoImplicitFloatAttribute = 1<<23, LLVMNakedAttribute = 1<<24, LLVMInlineHintAttribute = 1<<25, - LLVMStackAlignment = 7<<26 + LLVMStackAlignment = 7<<26, + LLVMReturnsTwice = 1 << 29, + LLVMUWTable = 1 << 30, + LLVMNonLazyBind = 1 << 31 } LLVMAttribute; typedef enum { @@ -125,7 +128,7 @@ typedef enum { LLVMSwitch = 3, LLVMIndirectBr = 4, LLVMInvoke = 5, - LLVMUnwind = 6, + /* removed 6 due to API changes */ LLVMUnreachable = 7, /* Standard Binary Operators */ @@ -176,14 +179,26 @@ typedef enum { LLVMPHI = 44, LLVMCall = 45, LLVMSelect = 46, - /* UserOp1 */ - /* UserOp2 */ + LLVMUserOp1 = 47, + LLVMUserOp2 = 48, LLVMVAArg = 49, LLVMExtractElement = 50, LLVMInsertElement = 51, LLVMShuffleVector = 52, LLVMExtractValue = 53, - LLVMInsertValue = 54 + LLVMInsertValue = 54, + + /* Atomic operators */ + LLVMFence = 55, + LLVMAtomicCmpXchg = 56, + LLVMAtomicRMW = 57, + + /* Exception Handling Operators */ + LLVMResume = 58, + LLVMLandingPad = 59, + LLVMUnwind = 60 + + } LLVMOpcode; typedef enum { @@ -274,6 +289,11 @@ typedef enum { LLVMRealPredicateTrue /**< Always true (always folded) */ } LLVMRealPredicate; +typedef enum { + LLVMLandingPadCatch, /**< A catch clause */ + LLVMLandingPadFilter /**< A filter clause */ +} LLVMLandingPadClauseTy; + void LLVMInitializeCore(LLVMPassRegistryRef R); @@ -340,6 +360,7 @@ LLVMContextRef LLVMGetModuleContext(LLVM /** See llvm::LLVMTypeKind::getTypeID. */ LLVMTypeKind LLVMGetTypeKind(LLVMTypeRef Ty); +LLVMBool LLVMTypeIsSized(LLVMTypeRef Ty); /** See llvm::LLVMType::getContext. */ LLVMContextRef LLVMGetTypeContext(LLVMTypeRef Ty); @@ -388,6 +409,7 @@ LLVMTypeRef LLVMStructTypeInContext(LLVM LLVMTypeRef LLVMStructType(LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed); LLVMTypeRef LLVMStructCreateNamed(LLVMContextRef C, const char *Name); +const char *LLVMGetStructName(LLVMTypeRef Ty); void LLVMStructSetBody(LLVMTypeRef StructTy, LLVMTypeRef *ElementTypes, unsigned ElementCount, LLVMBool Packed); @@ -427,8 +449,11 @@ LLVMTypeRef LLVMX86MMXType(void); macro(Argument) \ macro(BasicBlock) \ macro(InlineAsm) \ + macro(MDNode) \ + macro(MDString) \ macro(User) \ macro(Constant) \ + macro(BlockAddress) \ macro(ConstantAggregateZero) \ macro(ConstantArray) \ macro(ConstantExpr) \ @@ -448,29 +473,32 @@ LLVMTypeRef LLVMX86MMXType(void); macro(IntrinsicInst) \ macro(DbgInfoIntrinsic) \ macro(DbgDeclareInst) \ + macro(EHExceptionInst) \ macro(EHSelectorInst) \ macro(MemIntrinsic) \ macro(MemCpyInst) \ macro(MemMoveInst) \ macro(MemSetInst) \ macro(CmpInst) \ - macro(FCmpInst) \ - macro(ICmpInst) \ + macro(FCmpInst) \ + macro(ICmpInst) \ macro(ExtractElementInst) \ macro(GetElementPtrInst) \ macro(InsertElementInst) \ macro(InsertValueInst) \ + macro(LandingPadInst) \ macro(PHINode) \ macro(SelectInst) \ macro(ShuffleVectorInst) \ macro(StoreInst) \ macro(TerminatorInst) \ macro(BranchInst) \ + macro(IndirectBrInst) \ macro(InvokeInst) \ macro(ReturnInst) \ macro(SwitchInst) \ macro(UnreachableInst) \ - macro(UnwindInst) \ + macro(ResumeInst) \ macro(UnaryInstruction) \ macro(AllocaInst) \ macro(CastInst) \ @@ -533,6 +561,11 @@ LLVMValueRef LLVMMDString(const char *St LLVMValueRef LLVMMDNodeInContext(LLVMContextRef C, LLVMValueRef *Vals, unsigned Count); LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count); +const char *LLVMGetMDString(LLVMValueRef V, unsigned* Len); +int LLVMGetMDNodeNumOperands(LLVMValueRef V); +LLVMValueRef *LLVMGetMDNodeOperand(LLVMValueRef V, unsigned i); +unsigned LLVMGetNamedMetadataNumOperands(LLVMModuleRef M, const char* name); +void LLVMGetNamedMetadataOperands(LLVMModuleRef M, const char* name, LLVMValueRef *Dest); /* Operations on scalar constants */ LLVMValueRef LLVMConstInt(LLVMTypeRef IntTy, unsigned long long N, @@ -728,6 +761,7 @@ LLVMValueRef LLVMBasicBlockAsValue(LLVMB LLVMBool LLVMValueIsBasicBlock(LLVMValueRef Val); LLVMBasicBlockRef LLVMValueAsBasicBlock(LLVMValueRef Val); LLVMValueRef LLVMGetBasicBlockParent(LLVMBasicBlockRef BB); +LLVMValueRef LLVMGetBasicBlockTerminator(LLVMBasicBlockRef BB); unsigned LLVMCountBasicBlocks(LLVMValueRef Fn); void LLVMGetBasicBlocks(LLVMValueRef Fn, LLVMBasicBlockRef *BasicBlocks); LLVMBasicBlockRef LLVMGetFirstBasicBlock(LLVMValueRef Fn); @@ -747,16 +781,21 @@ LLVMBasicBlockRef LLVMAppendBasicBlock(L LLVMBasicBlockRef LLVMInsertBasicBlock(LLVMBasicBlockRef InsertBeforeBB, const char *Name); void LLVMDeleteBasicBlock(LLVMBasicBlockRef BB); +void LLVMRemoveBasicBlockFromParent(LLVMBasicBlockRef BB); void LLVMMoveBasicBlockBefore(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos); void LLVMMoveBasicBlockAfter(LLVMBasicBlockRef BB, LLVMBasicBlockRef MovePos); -/* Operations on instructions */ -LLVMBasicBlockRef LLVMGetInstructionParent(LLVMValueRef Inst); LLVMValueRef LLVMGetFirstInstruction(LLVMBasicBlockRef BB); LLVMValueRef LLVMGetLastInstruction(LLVMBasicBlockRef BB); + +/* Operations on instructions */ +LLVMBasicBlockRef LLVMGetInstructionParent(LLVMValueRef Inst); LLVMValueRef LLVMGetNextInstruction(LLVMValueRef Inst); LLVMValueRef LLVMGetPreviousInstruction(LLVMValueRef Inst); +void LLVMInstructionEraseFromParent(LLVMValueRef Inst); +LLVMOpcode LLVMGetInstructionOpcode(LLVMValueRef Inst); +LLVMIntPredicate LLVMGetICmpPredicate(LLVMValueRef Inst); /* Operations on call sites */ void LLVMSetInstructionCallConv(LLVMValueRef Instr, unsigned CC); @@ -771,6 +810,9 @@ void LLVMSetInstrParamAlignment(LLVMValu LLVMBool LLVMIsTailCall(LLVMValueRef CallInst); void LLVMSetTailCall(LLVMValueRef CallInst, LLVMBool IsTailCall); +/* Operations on switch instructions (only) */ +LLVMBasicBlockRef LLVMGetSwitchDefaultDest(LLVMValueRef SwitchInstr); + /* Operations on phi nodes */ void LLVMAddIncoming(LLVMValueRef PhiNode, LLVMValueRef *IncomingValues, LLVMBasicBlockRef *IncomingBlocks, unsigned Count); @@ -818,7 +860,10 @@ LLVMValueRef LLVMBuildInvoke(LLVMBuilder LLVMValueRef *Args, unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, const char *Name); -LLVMValueRef LLVMBuildUnwind(LLVMBuilderRef); +LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty, + LLVMValueRef PersFn, unsigned NumClauses, + const char *Name); +LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn); LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef); /* Add a case to the switch instruction */ @@ -828,6 +873,12 @@ void LLVMAddCase(LLVMValueRef Switch, LL /* Add a destination to the indirectbr instruction */ void LLVMAddDestination(LLVMValueRef IndirectBr, LLVMBasicBlockRef Dest); +/* Add a catch or filter clause to the landingpad instruction */ +void LLVMAddClause(LLVMValueRef LandingPad, LLVMValueRef ClauseVal); + +/* Set the 'cleanup' flag in the landingpad instruction */ +void LLVMSetCleanup(LLVMValueRef LandingPad, LLVMBool Val); + /* Arithmetic */ LLVMValueRef LLVMBuildAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name); @@ -1136,7 +1187,7 @@ namespace llvm { return reinterpret_cast(Tys); } - inline LLVMTypeRef *wrap(const Type **Tys) { + inline LLVMTypeRef *wrap(Type **Tys) { return reinterpret_cast(const_cast(Tys)); } Modified: user/attilio/vmcontention/contrib/llvm/include/llvm-c/Disassembler.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm-c/Disassembler.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm-c/Disassembler.h Sat Oct 22 22:56:20 2011 (r226644) @@ -66,7 +66,7 @@ typedef int (*LLVMOpInfoCallback)(void * */ struct LLVMOpInfoSymbol1 { uint64_t Present; /* 1 if this symbol is present */ - char *Name; /* symbol name if not NULL */ + const char *Name; /* symbol name if not NULL */ uint64_t Value; /* symbol value if name is NULL */ }; @@ -93,11 +93,35 @@ struct LLVMOpInfo1 { * disassembler for things like adding a comment for a PC plus a constant * offset load instruction to use a symbol name instead of a load address value. * It is passed the block information is saved when the disassembler context is - * created and a value of a symbol to look up. If no symbol is found NULL is - * returned. + * created and the ReferenceValue to look up as a symbol. If no symbol is found + * for the ReferenceValue NULL is returned. The ReferenceType of the + * instruction is passed indirectly as is the PC of the instruction in + * ReferencePC. If the output reference can be determined its type is returned + * indirectly in ReferenceType along with ReferenceName if any, or that is set + * to NULL. */ typedef const char *(*LLVMSymbolLookupCallback)(void *DisInfo, - uint64_t SymbolValue); + uint64_t ReferenceValue, + uint64_t *ReferenceType, + uint64_t ReferencePC, + const char **ReferenceName); +/** + * The reference types on input and output. + */ +/* No input reference type or no output reference type. */ +#define LLVMDisassembler_ReferenceType_InOut_None 0 + +/* The input reference is from a branch instruction. */ +#define LLVMDisassembler_ReferenceType_In_Branch 1 +/* The input reference is from a PC relative load instruction. */ +#define LLVMDisassembler_ReferenceType_In_PCrel_Load 2 + +/* The output reference is to as symbol stub. */ +#define LLVMDisassembler_ReferenceType_Out_SymbolStub 1 +/* The output reference is to a symbol address in a literal pool. */ +#define LLVMDisassembler_ReferenceType_Out_LitPool_SymAddr 2 +/* The output reference is to a cstring address in a literal pool. */ +#define LLVMDisassembler_ReferenceType_Out_LitPool_CstrAddr 3 #ifdef __cplusplus extern "C" { Modified: user/attilio/vmcontention/contrib/llvm/include/llvm-c/Object.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm-c/Object.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm-c/Object.h Sat Oct 22 22:56:20 2011 (r226644) @@ -59,14 +59,14 @@ namespace llvm { return reinterpret_cast(const_cast(OF)); } - inline ObjectFile::section_iterator *unwrap(LLVMSectionIteratorRef SI) { - return reinterpret_cast(SI); + inline section_iterator *unwrap(LLVMSectionIteratorRef SI) { + return reinterpret_cast(SI); } inline LLVMSectionIteratorRef - wrap(const ObjectFile::section_iterator *SI) { + wrap(const section_iterator *SI) { return reinterpret_cast - (const_cast(SI)); + (const_cast(SI)); } } } Modified: user/attilio/vmcontention/contrib/llvm/include/llvm-c/Target.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm-c/Target.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm-c/Target.h Sat Oct 22 22:56:20 2011 (r226644) @@ -29,6 +29,7 @@ extern "C" { enum LLVMByteOrdering { LLVMBigEndian, LLVMLittleEndian }; typedef struct LLVMOpaqueTargetData *LLVMTargetDataRef; +typedef struct LLVMOpaqueTargetLibraryInfotData *LLVMTargetLibraryInfoRef; typedef struct LLVMStructLayout *LLVMStructLayoutRef; /* Declare all of the target-initialization functions that are available. */ @@ -42,7 +43,7 @@ typedef struct LLVMStructLayout *LLVMStr #undef LLVM_TARGET /* Explicit undef to make SWIG happier */ #define LLVM_TARGET(TargetName) \ - void LLVMInitialize##TargetName##MCAsmInfo(void); + void LLVMInitialize##TargetName##TargetMC(void); #include "llvm/Config/Targets.def" #undef LLVM_TARGET /* Explicit undef to make SWIG happier */ @@ -72,7 +73,7 @@ static inline LLVMBool LLVMInitializeNat #ifdef LLVM_NATIVE_TARGET LLVM_NATIVE_TARGETINFO(); LLVM_NATIVE_TARGET(); - LLVM_NATIVE_MCASMINFO(); + LLVM_NATIVE_TARGETMC(); return 0; #else return 1; @@ -90,6 +91,11 @@ LLVMTargetDataRef LLVMCreateTargetData(c See the method llvm::PassManagerBase::add. */ void LLVMAddTargetData(LLVMTargetDataRef, LLVMPassManagerRef); +/** Adds target library information to a pass manager. This does not take + ownership of the target library info. + See the method llvm::PassManagerBase::add. */ +void LLVMAddTargetLibraryInfo(LLVMTargetLibraryInfoRef, LLVMPassManagerRef); + /** Converts target data to a target layout string. The string must be disposed with LLVMDisposeMessage. See the constructor llvm::TargetData::TargetData. */ @@ -157,6 +163,7 @@ void LLVMDisposeTargetData(LLVMTargetDat namespace llvm { class TargetData; + class TargetLibraryInfo; inline TargetData *unwrap(LLVMTargetDataRef P) { return reinterpret_cast(P); @@ -165,6 +172,15 @@ namespace llvm { inline LLVMTargetDataRef wrap(const TargetData *P) { return reinterpret_cast(const_cast(P)); } + + inline TargetLibraryInfo *unwrap(LLVMTargetLibraryInfoRef P) { + return reinterpret_cast(P); + } + + inline LLVMTargetLibraryInfoRef wrap(const TargetLibraryInfo *P) { + TargetLibraryInfo *X = const_cast(P); + return reinterpret_cast(X); + } } #endif /* defined(__cplusplus) */ Modified: user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/IPO.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/IPO.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/IPO.h Sat Oct 22 22:56:20 2011 (r226644) @@ -36,6 +36,9 @@ void LLVMAddFunctionAttrsPass(LLVMPassMa /** See llvm::createFunctionInliningPass function. */ void LLVMAddFunctionInliningPass(LLVMPassManagerRef PM); +/** See llvm::createAlwaysInlinerPass function. */ +void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM); + /** See llvm::createGlobalDCEPass function. */ void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM); @@ -45,9 +48,6 @@ void LLVMAddGlobalOptimizerPass(LLVMPass /** See llvm::createIPConstantPropagationPass function. */ void LLVMAddIPConstantPropagationPass(LLVMPassManagerRef PM); -/** See llvm::createLowerSetJmpPass function. */ -void LLVMAddLowerSetJmpPass(LLVMPassManagerRef PM); - /** See llvm::createPruneEHPass function. */ void LLVMAddPruneEHPass(LLVMPassManagerRef PM); @@ -57,9 +57,6 @@ void LLVMAddIPSCCPPass(LLVMPassManagerRe /** See llvm::createInternalizePass function. */ void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain); -// FIXME: Remove in LLVM 3.0. -void LLVMAddRaiseAllocationsPass(LLVMPassManagerRef PM); - /** See llvm::createStripDeadPrototypesPass function. */ void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM); Copied: user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h (from r226643, head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h Sat Oct 22 22:56:20 2011 (r226644, copy of r226643, head/contrib/llvm/include/llvm-c/Transforms/PassManagerBuilder.h) @@ -0,0 +1,90 @@ +/*===-- llvm-c/Transform/PassManagerBuilder.h - PMB C Interface ---*- C -*-===*\ +|* *| +|* The LLVM Compiler Infrastructure *| +|* *| +|* This file is distributed under the University of Illinois Open Source *| +|* License. See LICENSE.TXT for details. *| +|* *| +|*===----------------------------------------------------------------------===*| +|* *| +|* This header declares the C interface to the PassManagerBuilder class. *| +|* *| +\*===----------------------------------------------------------------------===*/ + +#ifndef LLVM_C_PASSMANAGERBUILDER +#define LLVM_C_PASSMANAGERBUILDER + +#include "llvm-c/Core.h" + +typedef struct LLVMOpaquePassManagerBuilder *LLVMPassManagerBuilderRef; + +#ifdef __cplusplus +#include "llvm/Transforms/IPO/PassManagerBuilder.h" +extern "C" { +#endif + +/** See llvm::PassManagerBuilder. */ +LLVMPassManagerBuilderRef LLVMPassManagerBuilderCreate(void); +void LLVMPassManagerBuilderDispose(LLVMPassManagerBuilderRef PMB); + +/** See llvm::PassManagerBuilder::OptLevel. */ +void +LLVMPassManagerBuilderSetOptLevel(LLVMPassManagerBuilderRef PMB, + unsigned OptLevel); + +/** See llvm::PassManagerBuilder::SizeLevel. */ +void +LLVMPassManagerBuilderSetSizeLevel(LLVMPassManagerBuilderRef PMB, + unsigned SizeLevel); + +/** See llvm::PassManagerBuilder::DisableUnitAtATime. */ +void +LLVMPassManagerBuilderSetDisableUnitAtATime(LLVMPassManagerBuilderRef PMB, + LLVMBool Value); + +/** See llvm::PassManagerBuilder::DisableUnrollLoops. */ +void +LLVMPassManagerBuilderSetDisableUnrollLoops(LLVMPassManagerBuilderRef PMB, + LLVMBool Value); + +/** See llvm::PassManagerBuilder::DisableSimplifyLibCalls */ +void +LLVMPassManagerBuilderSetDisableSimplifyLibCalls(LLVMPassManagerBuilderRef PMB, + LLVMBool Value); + +/** See llvm::PassManagerBuilder::Inliner. */ +void +LLVMPassManagerBuilderUseInlinerWithThreshold(LLVMPassManagerBuilderRef PMB, + unsigned Threshold); + +/** See llvm::PassManagerBuilder::populateFunctionPassManager. */ +void +LLVMPassManagerBuilderPopulateFunctionPassManager(LLVMPassManagerBuilderRef PMB, + LLVMPassManagerRef PM); + +/** See llvm::PassManagerBuilder::populateModulePassManager. */ +void +LLVMPassManagerBuilderPopulateModulePassManager(LLVMPassManagerBuilderRef PMB, + LLVMPassManagerRef PM); + +/** See llvm::PassManagerBuilder::populateLTOPassManager. */ +void LLVMPassManagerBuilderPopulateLTOPassManager(LLVMPassManagerBuilderRef PMB, + LLVMPassManagerRef PM, + bool Internalize, + bool RunInliner); + +#ifdef __cplusplus +} + +namespace llvm { + inline PassManagerBuilder *unwrap(LLVMPassManagerBuilderRef P) { + return reinterpret_cast(P); + } + + inline LLVMPassManagerBuilderRef wrap(PassManagerBuilder *P) { + return reinterpret_cast(P); + } +} +#endif + +#endif Modified: user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/Scalar.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/Scalar.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm-c/Transforms/Scalar.h Sat Oct 22 22:56:20 2011 (r226644) @@ -107,6 +107,9 @@ void LLVMAddCorrelatedValuePropagationPa /** See llvm::createEarlyCSEPass function */ void LLVMAddEarlyCSEPass(LLVMPassManagerRef PM); +/** See llvm::createLowerExpectIntrinsicPass function */ +void LLVMAddLowerExpectIntrinsicPass(LLVMPassManagerRef PM); + /** See llvm::createTypeBasedAliasAnalysisPass function */ void LLVMAddTypeBasedAliasAnalysisPass(LLVMPassManagerRef PM); Modified: user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/APInt.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/APInt.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/APInt.h Sat Oct 22 22:56:20 2011 (r226644) @@ -15,6 +15,7 @@ #ifndef LLVM_APINT_H #define LLVM_APINT_H +#include "llvm/ADT/ArrayRef.h" #include "llvm/Support/MathExtras.h" #include #include @@ -160,7 +161,7 @@ class APInt { /// not assume that the string is well-formed and (2) grows the /// result to hold the input. /// - /// @param radix 2, 8, 10, or 16 + /// @param radix 2, 8, 10, 16, or 36 /// @brief Convert a char array into an APInt void fromString(unsigned numBits, StringRef str, uint8_t radix); @@ -176,6 +177,9 @@ class APInt { /// out-of-line slow case for inline constructor void initSlowCase(unsigned numBits, uint64_t val, bool isSigned); + /// shared code between two array constructors + void initFromArray(ArrayRef array); + /// out-of-line slow case for inline copy constructor void initSlowCase(const APInt& that); @@ -230,19 +234,26 @@ public: clearUnusedBits(); } - /// Note that numWords can be smaller or larger than the corresponding bit - /// width but any extraneous bits will be dropped. + /// Note that bigVal.size() can be smaller or larger than the corresponding + /// bit width but any extraneous bits will be dropped. /// @param numBits the bit width of the constructed APInt - /// @param numWords the number of words in bigVal /// @param bigVal a sequence of words to form the initial value of the APInt /// @brief Construct an APInt of numBits width, initialized as bigVal[]. + APInt(unsigned numBits, ArrayRef bigVal); + /// Equivalent to APInt(numBits, ArrayRef(bigVal, numWords)), but + /// deprecated because this constructor is prone to ambiguity with the + /// APInt(unsigned, uint64_t, bool) constructor. + /// + /// If this overload is ever deleted, care should be taken to prevent calls + /// from being incorrectly captured by the APInt(unsigned, uint64_t, bool) + /// constructor. APInt(unsigned numBits, unsigned numWords, const uint64_t bigVal[]); /// This constructor interprets the string \arg str in the given radix. The /// interpretation stops when the first character that is not suitable for the /// radix is encountered, or the end of the string. Acceptable radix values - /// are 2, 8, 10 and 16. It is an error for the value implied by the string to - /// require more bits than numBits. + /// are 2, 8, 10, 16, and 36. It is an error for the value implied by the + /// string to require more bits than numBits. /// /// @param numBits the bit width of the constructed APInt /// @param str the string to be interpreted @@ -342,7 +353,8 @@ public: if (isSingleWord()) return isUIntN(N, VAL); - return APInt(N, getNumWords(), pVal).zext(getBitWidth()) == (*this); + return APInt(N, makeArrayRef(pVal, getNumWords())).zext(getBitWidth()) + == (*this); } /// @brief Check if this APInt has an N-bits signed integer value. @@ -1245,13 +1257,13 @@ public: bool formatAsCLiteral = false) const; /// Considers the APInt to be unsigned and converts it into a string in the - /// radix given. The radix can be 2, 8, 10 or 16. + /// radix given. The radix can be 2, 8, 10 16, or 36. void toStringUnsigned(SmallVectorImpl &Str, unsigned Radix = 10) const { toString(Str, Radix, false, false); } /// Considers the APInt to be signed and converts it into a string in the - /// radix given. The radix can be 2, 8, 10 or 16. + /// radix given. The radix can be 2, 8, 10, 16, or 36. void toStringSigned(SmallVectorImpl &Str, unsigned Radix = 10) const { toString(Str, Radix, true, false); } Modified: user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ArrayRef.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ArrayRef.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ArrayRef.h Sat Oct 22 22:56:20 2011 (r226644) @@ -147,7 +147,53 @@ namespace llvm { /// @} }; - + + /// @name ArrayRef Convenience constructors + /// @{ + + /// Construct an ArrayRef from a single element. + template + ArrayRef makeArrayRef(const T &OneElt) { + return OneElt; + } + + /// Construct an ArrayRef from a pointer and length. + template + ArrayRef makeArrayRef(const T *data, size_t length) { + return ArrayRef(data, length); + } + + /// Construct an ArrayRef from a range. + template + ArrayRef makeArrayRef(const T *begin, const T *end) { + return ArrayRef(begin, end); + } + + /// Construct an ArrayRef from a SmallVector. + template + ArrayRef makeArrayRef(const SmallVectorImpl &Vec) { + return Vec; + } + + /// Construct an ArrayRef from a SmallVector. + template + ArrayRef makeArrayRef(const SmallVector &Vec) { + return Vec; + } + + /// Construct an ArrayRef from a std::vector. + template + ArrayRef makeArrayRef(const std::vector &Vec) { + return Vec; + } + + /// Construct an ArrayRef from a C array. + template + ArrayRef makeArrayRef(const T (&Arr)[N]) { + return ArrayRef(Arr); + } + + /// @} /// @name ArrayRef Comparison Operators /// @{ Modified: user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseMap.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseMap.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseMap.h Sat Oct 22 22:56:20 2011 (r226644) @@ -540,6 +540,12 @@ private: ++Ptr; } }; + +template +static inline size_t +capacity_in_bytes(const DenseMap &X) { + return X.getMemorySize(); +} } // end namespace llvm Modified: user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseMapInfo.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseMapInfo.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseMapInfo.h Sat Oct 22 22:56:20 2011 (r226644) @@ -51,7 +51,7 @@ struct DenseMapInfo { template<> struct DenseMapInfo { static inline char getEmptyKey() { return ~0; } static inline char getTombstoneKey() { return ~0 - 1; } - static unsigned getHashValue(const char& Val) { return Val * 37; } + static unsigned getHashValue(const char& Val) { return Val * 37U; } static bool isEqual(const char &LHS, const char &RHS) { return LHS == RHS; } @@ -61,7 +61,7 @@ template<> struct DenseMapInfo { template<> struct DenseMapInfo { static inline unsigned getEmptyKey() { return ~0; } static inline unsigned getTombstoneKey() { return ~0U - 1; } - static unsigned getHashValue(const unsigned& Val) { return Val * 37; } + static unsigned getHashValue(const unsigned& Val) { return Val * 37U; } static bool isEqual(const unsigned& LHS, const unsigned& RHS) { return LHS == RHS; } @@ -96,7 +96,7 @@ template<> struct DenseMapInfo struct DenseMapInfo { static inline int getEmptyKey() { return 0x7fffffff; } static inline int getTombstoneKey() { return -0x7fffffff - 1; } - static unsigned getHashValue(const int& Val) { return (unsigned)(Val * 37); } + static unsigned getHashValue(const int& Val) { return (unsigned)(Val * 37U); } static bool isEqual(const int& LHS, const int& RHS) { return LHS == RHS; } @@ -109,7 +109,7 @@ template<> struct DenseMapInfo { } static inline long getTombstoneKey() { return getEmptyKey() - 1L; } static unsigned getHashValue(const long& Val) { - return (unsigned)(Val * 37L); + return (unsigned)(Val * 37UL); } static bool isEqual(const long& LHS, const long& RHS) { return LHS == RHS; @@ -121,7 +121,7 @@ template<> struct DenseMapInfo > { } static inline Pair getTombstoneKey() { return std::make_pair(FirstInfo::getTombstoneKey(), - SecondInfo::getEmptyKey()); + SecondInfo::getTombstoneKey()); } static unsigned getHashValue(const Pair& PairVal) { uint64_t key = (uint64_t)FirstInfo::getHashValue(PairVal.first) << 32 @@ -158,7 +158,7 @@ struct DenseMapInfo > { return (unsigned)key; } static bool isEqual(const Pair &LHS, const Pair &RHS) { - return FirstInfo::isEqual(LHS.first, RHS.first) && + return FirstInfo::isEqual(LHS.first, RHS.first) && SecondInfo::isEqual(LHS.second, RHS.second); } }; Modified: user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseSet.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseSet.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/DenseSet.h Sat Oct 22 22:56:20 2011 (r226644) @@ -28,7 +28,7 @@ class DenseSet { MapTy TheMap; public: DenseSet(const DenseSet &Other) : TheMap(Other.TheMap) {} - explicit DenseSet(unsigned NumInitBuckets = 64) : TheMap(NumInitBuckets) {} + explicit DenseSet(unsigned NumInitBuckets = 0) : TheMap(NumInitBuckets) {} bool empty() const { return TheMap.empty(); } unsigned size() const { return TheMap.size(); } Modified: user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ImmutableMap.h ============================================================================== --- user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ImmutableMap.h Sat Oct 22 22:22:46 2011 (r226643) +++ user/attilio/vmcontention/contrib/llvm/include/llvm/ADT/ImmutableMap.h Sat Oct 22 22:56:20 2011 (r226644) @@ -117,6 +117,10 @@ public: return ImmutableMap(Canonicalize ? F.getCanonicalTree(T): T); } + typename TreeTy::Factory *getTreeFactory() const { + return const_cast(&F); + } + private: Factory(const Factory& RHS); // DO NOT IMPLEMENT void operator=(const Factory& RHS); // DO NOT IMPLEMENT @@ -256,6 +260,159 @@ public: } }; +// NOTE: This will possibly become the new implementation of ImmutableMap some day. +template > +class ImmutableMapRef { +public: + typedef typename ValInfo::value_type value_type; + typedef typename ValInfo::value_type_ref value_type_ref; + typedef typename ValInfo::key_type key_type; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@FreeBSD.ORG Sat Oct 22 23:34:37 2011 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7D2BD106566C; Sat, 22 Oct 2011 23:34:37 +0000 (UTC) (envelope-from attilio@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 6C0A68FC0A; Sat, 22 Oct 2011 23:34:37 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id p9MNYbJj000752; Sat, 22 Oct 2011 23:34:37 GMT (envelope-from attilio@svn.freebsd.org) Received: (from attilio@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id p9MNYbdF000742; Sat, 22 Oct 2011 23:34:37 GMT (envelope-from attilio@svn.freebsd.org) Message-Id: <201110222334.p9MNYbdF000742@svn.freebsd.org> From: Attilio Rao Date: Sat, 22 Oct 2011 23:34:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r226645 - in user/attilio/vmcontention/sys: conf vm X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Oct 2011 23:34:37 -0000 Author: attilio Date: Sat Oct 22 23:34:37 2011 New Revision: 226645 URL: http://svn.freebsd.org/changeset/base/226645 Log: Check in an intial implementation of radix tree implementation to replace the vm object pages splay. TODO: - Handle differently the negative keys for having smaller depth index nodes (negative keys caming from indirect blocks) - Fix the get_node() by having support for a low reserved objects directly from UMA - Implement the lookup_le and re-enable VM_NRESERVELEVEL = 1 - Try to rework the superpage splay of idle pages and the cache splay for every vm object in order to regain space on vm_page structure - Verify performance and improve them (likely by having consumers to deal with several ranges of pages manually?) Obtained from: jeff, Mayur Shardul (GSoC 2009) Added: user/attilio/vmcontention/sys/vm/vm_radix.c (contents, props changed) user/attilio/vmcontention/sys/vm/vm_radix.h (contents, props changed) Modified: user/attilio/vmcontention/sys/conf/files user/attilio/vmcontention/sys/conf/options user/attilio/vmcontention/sys/vm/vm_object.c user/attilio/vmcontention/sys/vm/vm_object.h user/attilio/vmcontention/sys/vm/vm_page.c user/attilio/vmcontention/sys/vm/vm_reserv.c user/attilio/vmcontention/sys/vm/vm_reserv.h Modified: user/attilio/vmcontention/sys/conf/files ============================================================================== --- user/attilio/vmcontention/sys/conf/files Sat Oct 22 22:56:20 2011 (r226644) +++ user/attilio/vmcontention/sys/conf/files Sat Oct 22 23:34:37 2011 (r226645) @@ -3330,6 +3330,7 @@ vm/vm_page.c standard vm/vm_pageout.c standard vm/vm_pager.c standard vm/vm_phys.c standard +vm/vm_radix.c standard vm/vm_reserv.c standard vm/vm_unix.c standard vm/vm_zeroidle.c standard Modified: user/attilio/vmcontention/sys/conf/options ============================================================================== --- user/attilio/vmcontention/sys/conf/options Sat Oct 22 22:56:20 2011 (r226644) +++ user/attilio/vmcontention/sys/conf/options Sat Oct 22 23:34:37 2011 (r226645) @@ -591,6 +591,7 @@ VM_KMEM_SIZE_SCALE opt_vm.h VM_KMEM_SIZE_MAX opt_vm.h VM_NRESERVLEVEL opt_vm.h VM_LEVEL_0_ORDER opt_vm.h +VM_RADIX opt_vm.h NO_SWAPPING opt_vm.h MALLOC_MAKE_FAILURES opt_vm.h MALLOC_PROFILE opt_vm.h Modified: user/attilio/vmcontention/sys/vm/vm_object.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_object.c Sat Oct 22 22:56:20 2011 (r226644) +++ user/attilio/vmcontention/sys/vm/vm_object.c Sat Oct 22 23:34:37 2011 (r226645) @@ -208,7 +208,12 @@ _vm_object_allocate(objtype_t type, vm_p TAILQ_INIT(&object->memq); LIST_INIT(&object->shadow_head); +#ifdef VM_RADIX + object->rtree.rt_height = 0; + object->rtree.rt_root = NULL; +#else object->root = NULL; +#endif object->type = type; object->size = size; object->generation = 1; Modified: user/attilio/vmcontention/sys/vm/vm_object.h ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_object.h Sat Oct 22 22:56:20 2011 (r226644) +++ user/attilio/vmcontention/sys/vm/vm_object.h Sat Oct 22 23:34:37 2011 (r226645) @@ -71,6 +71,8 @@ #include #include +#include + /* * Types defined: * @@ -87,6 +89,7 @@ struct vm_object { LIST_HEAD(, vm_object) shadow_head; /* objects that this is a shadow for */ LIST_ENTRY(vm_object) shadow_list; /* chain of shadow objects */ TAILQ_HEAD(, vm_page) memq; /* list of resident pages */ + struct vm_radix rtree; /* root of the resident page radix index tree */ vm_page_t root; /* root of the resident page splay tree */ vm_pindex_t size; /* Object size */ int generation; /* generation ID */ Modified: user/attilio/vmcontention/sys/vm/vm_page.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_page.c Sat Oct 22 22:56:20 2011 (r226644) +++ user/attilio/vmcontention/sys/vm/vm_page.c Sat Oct 22 23:34:37 2011 (r226645) @@ -103,6 +103,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -121,6 +122,13 @@ struct vpglocks vm_page_queue_free_lock; struct vpglocks pa_lock[PA_LOCK_COUNT]; +#ifdef VM_RADIX +extern SLIST_HEAD(, vm_radix_node) res_rnodes_head; +extern struct mtx rnode_lock; +extern vm_offset_t rnode_start; +extern vm_offset_t rnode_end; +#endif + vm_page_t vm_page_array = 0; int vm_page_array_size = 0; long first_page = 0; @@ -252,6 +260,10 @@ vm_page_startup(vm_offset_t vaddr) vm_paddr_t pa; vm_paddr_t last_pa; char *list; +#ifdef VM_RADIX + unsigned int rtree_res_count; + vm_pindex_t size; +#endif /* the biggest memory array is the second group of pages */ vm_paddr_t end; @@ -311,7 +323,34 @@ vm_page_startup(vm_offset_t vaddr) vm_page_queues[PQ_INACTIVE].cnt = &cnt.v_inactive_count; vm_page_queues[PQ_ACTIVE].cnt = &cnt.v_active_count; vm_page_queues[PQ_HOLD].cnt = &cnt.v_active_count; - +#ifdef VM_RADIX + mtx_init(&rnode_lock, "radix node", NULL, MTX_SPIN); + /* + * Reserve memory for radix nodes. Allocate enough nodes so that + * insert on kernel_object will not result in recurrsion. + */ + size = OFF_TO_IDX(VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS) * 2; + rtree_res_count = 0; + while (size != 0) { + rtree_res_count += size / VM_RADIX_COUNT; + size /= VM_RADIX_COUNT; + } + printf("Allocated %d tree pages for %lu bytes of memory.\n", + rtree_res_count, VM_MAX_KERNEL_ADDRESS - VM_MIN_KERNEL_ADDRESS); + new_end = end - (rtree_res_count * sizeof(struct vm_radix_node)); + new_end = trunc_page(new_end); + mapped = pmap_map(&vaddr, new_end, end, + VM_PROT_READ | VM_PROT_WRITE); + bzero((void *)mapped, end - new_end); + end = new_end; + rnode_start = mapped; + for (i = 0; i < rtree_res_count; i++) { + SLIST_INSERT_HEAD(&res_rnodes_head, + (struct vm_radix_node *)mapped, next); + mapped += sizeof(struct vm_radix_node); + } + rnode_end = mapped; +#endif /* * Allocate memory for use when boot strapping the kernel memory * allocator. @@ -836,8 +875,11 @@ vm_page_splay(vm_pindex_t pindex, vm_pag void vm_page_insert(vm_page_t m, vm_object_t object, vm_pindex_t pindex) { +#ifdef VM_RADIX + vm_page_t neighbor; +#else vm_page_t root; - +#endif VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); if (m->object != NULL) panic("vm_page_insert: page already inserted"); @@ -848,6 +890,20 @@ vm_page_insert(vm_page_t m, vm_object_t m->object = object; m->pindex = pindex; +#ifdef VM_RADIX + if (object->resident_page_count == 0) { + TAILQ_INSERT_TAIL(&object->memq, m, listq); + } else { + neighbor = vm_radix_lookup_ge(&object->rtree, pindex); + if (neighbor != NULL) { + KASSERT(pindex != neighbor->pindex, + ("vm_page_insert: offset already allocated")); + TAILQ_INSERT_BEFORE(neighbor, m, listq); + } else + TAILQ_INSERT_TAIL(&object->memq, m, listq); + } + vm_radix_insert(&object->rtree, pindex, m); +#else /* * Now link into the object's ordered list of backed pages. */ @@ -873,6 +929,7 @@ vm_page_insert(vm_page_t m, vm_object_t } } object->root = m; +#endif /* * show that the object has one more resident page. @@ -908,7 +965,9 @@ void vm_page_remove(vm_page_t m) { vm_object_t object; +#ifndef VM_RADIX vm_page_t root; +#endif if ((m->oflags & VPO_UNMANAGED) == 0) vm_page_lock_assert(m, MA_OWNED); @@ -920,6 +979,9 @@ vm_page_remove(vm_page_t m) vm_page_flash(m); } +#ifdef VM_RADIX + vm_radix_remove(&object->rtree, m->pindex); +#else /* * Now remove from the object's list of backed pages. */ @@ -932,6 +994,8 @@ vm_page_remove(vm_page_t m) root->right = m->right; } object->root = root; +#endif + TAILQ_REMOVE(&object->memq, m, listq); /* @@ -963,11 +1027,16 @@ vm_page_lookup(vm_object_t object, vm_pi vm_page_t m; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); + +#ifdef VM_RADIX + m = vm_radix_lookup(&object->rtree, pindex); +#else if ((m = object->root) != NULL && m->pindex != pindex) { m = vm_page_splay(pindex, m); if ((object->root = m)->pindex != pindex) m = NULL; } +#endif return (m); } @@ -986,6 +1055,10 @@ vm_page_find_least(vm_object_t object, v vm_page_t m; VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); +#ifdef VM_RADIX + if ((m = TAILQ_FIRST(&object->memq)) != NULL) + m = vm_radix_lookup_ge(&object->rtree, pindex); +#else if ((m = TAILQ_FIRST(&object->memq)) != NULL) { if (m->pindex < pindex) { m = vm_page_splay(pindex, object->root); @@ -993,6 +1066,7 @@ vm_page_find_least(vm_object_t object, v m = TAILQ_NEXT(m, listq); } } +#endif return (m); } @@ -2052,6 +2126,9 @@ vm_page_cache(vm_page_t m) */ vm_pageq_remove(m); +#ifdef VM_RADIX + vm_radix_remove(&object->rtree, m->pindex); +#else /* * Remove the page from the object's collection of resident * pages. @@ -2065,6 +2142,7 @@ vm_page_cache(vm_page_t m) root->right = m->right; } object->root = root; +#endif TAILQ_REMOVE(&object->memq, m, listq); object->resident_page_count--; Added: user/attilio/vmcontention/sys/vm/vm_radix.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmcontention/sys/vm/vm_radix.c Sat Oct 22 23:34:37 2011 (r226645) @@ -0,0 +1,435 @@ +/* + * Copyright (c) 2008 Mayur Shardul + * Copyright (c) 2011 Jeffrey Roberson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + + +/* + * Radix tree implementation. + */ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + + +SLIST_HEAD(, vm_radix_node) res_rnodes_head = + SLIST_HEAD_INITIALIZER(res_rnodes_head); + +struct mtx rnode_lock; +vm_offset_t rnode_start; +vm_offset_t rnode_end; + +/* + * Allocate a radix node. Initializes all elements to 0. + */ +static struct vm_radix_node * +vm_radix_node_get(void) +{ + struct vm_radix_node *rnode; + + if (VM_OBJECT_LOCKED(kernel_object) || VM_OBJECT_LOCKED(kmem_object)){ + mtx_lock_spin(&rnode_lock); + if (!SLIST_EMPTY(&res_rnodes_head)) { + rnode = SLIST_FIRST(&res_rnodes_head); + SLIST_REMOVE_HEAD(&res_rnodes_head, next); + mtx_unlock_spin(&rnode_lock); + bzero((void *)rnode, sizeof(*rnode)); + goto out; + } + mtx_unlock_spin(&rnode_lock); + panic("No memory for kernel_object. . ."); + } + rnode = malloc(sizeof(struct vm_radix_node), M_TEMP, M_NOWAIT | M_ZERO); + if (rnode == NULL) { + panic("vm_radix_node_get: Can not allocate memory\n"); + return NULL; + } +out: + + return rnode; +} + +/* + * Free radix node. + */ +static void +vm_radix_node_put(struct vm_radix_node *rnode) +{ + + KASSERT(rnode->rn_count == 0, + ("vm_radix_node_put: Freeing a node with %d children\n", + rnode->rn_count)); + if ((vm_offset_t)rnode >= rnode_start && + (vm_offset_t)rnode < rnode_end) { + mtx_lock_spin(&rnode_lock); + SLIST_INSERT_HEAD(&res_rnodes_head, rnode, next); + mtx_unlock_spin(&rnode_lock); + } else + free(rnode,M_TEMP); +} + +/* + * Return the position in the array for a given level. + */ +static inline int +vm_radix_slot(vm_pindex_t index, int level) +{ + + return ((index >> (level * VM_RADIX_WIDTH)) & VM_RADIX_MASK); +} + +/* + * Inserts the key-value pair in to the radix tree. Returns errno. + * Panics if the key already exists. + */ +int +vm_radix_insert(struct vm_radix *rtree, vm_pindex_t index, void *val) +{ + struct vm_radix_node *rnode; + int slot; + int level; + + CTR3(KTR_VM, + "insert: tree %p, index %p, val %p", rtree, (void *)index, val); + if (index == -1) + panic("vm_radix_insert: -1 is not a valid index.\n"); + /* + * Increase the height by adding nodes at the root until + * there is sufficient space. + */ + while (rtree->rt_height == 0 || + index > VM_RADIX_MAX(rtree->rt_height)) { + CTR3(KTR_VM, "insert: expanding %jd > %jd height %d", + index, VM_RADIX_MAX(rtree->rt_height), rtree->rt_height); + /* + * Only allocate tree nodes if they are needed. + */ + if (rtree->rt_root == NULL || rtree->rt_root->rn_count != 0) { + rnode = vm_radix_node_get(); + if (rnode == NULL) + return (ENOMEM); + if (rtree->rt_root) { + rnode->rn_child[0] = rtree->rt_root; + rnode->rn_count = 1; + } + rtree->rt_root = rnode; + } + rtree->rt_height++; + KASSERT(rtree->rt_height <= VM_RADIX_LIMIT, + ("vm_radix_insert: Tree %p height %d too tall", rtree, + rtree->rt_height)); + } + + /* Now that the tree is tall enough, fill in the path to the index. */ + rnode = rtree->rt_root; + for (level = rtree->rt_height - 1; level > 0; level--) { + slot = vm_radix_slot(index, level); + /* Add the required intermidiate nodes. */ + if (rnode->rn_child[slot] == NULL) { + rnode->rn_child[slot] = vm_radix_node_get(); + if (rnode->rn_child[slot] == NULL) + return (ENOMEM); + rnode->rn_count++; + } + CTR5(KTR_VM, + "insert: tree %p, index %p, level %d, slot %d, child %p", + rtree, (void *)index, level, slot, rnode->rn_child[slot]); + rnode = rnode->rn_child[slot]; + } + + slot = vm_radix_slot(index, level); + CTR5(KTR_VM, "insert: tree %p, index %p, level %d, slot %d, child %p", + rtree, (void *)index, level, slot, rnode->rn_child[slot]); + KASSERT(rnode->rn_child[slot] == NULL, + ("vm_radix_insert: Duplicate value %p at index: %lu\n", + rnode->rn_child[slot], (u_long)index)); + rnode->rn_child[slot] = val; + rnode->rn_count++; + + return 0; +} + +/* + * Returns the value stored at the index. If the index is not present + * NULL is returned. + */ +void * +vm_radix_lookup(struct vm_radix *rtree, vm_pindex_t index) +{ + struct vm_radix_node *rnode; + int slot; + int level; + + if (index > VM_RADIX_MAX(rtree->rt_height)) + return NULL; + level = rtree->rt_height - 1; + rnode = rtree->rt_root; + while (rnode) { + slot = vm_radix_slot(index, level); + CTR5(KTR_VM, + "lookup: tree %p, index %p, level %d, slot %d, child %p", + rtree, (void *)index, level, slot, rnode->rn_child[slot]); + if (level == 0) + return rnode->rn_child[slot]; + rnode = rnode->rn_child[slot]; + level--; + } + CTR2(KTR_VM, "lookup: tree %p, index %p failed", rtree, (void *)index); + + return NULL; +} + +/* + * Looks up as many as cnt values between start and end and stores them + * in the caller allocated array out. The next index can be used to + * restart the scan. This optimizes forward scans in the tree. + */ +int +vm_radix_lookupn(struct vm_radix *rtree, vm_pindex_t start, + vm_pindex_t end, void **out, int cnt, vm_pindex_t *next) +{ + struct vm_radix_node *rnode; + struct vm_radix_node *child; + vm_pindex_t max; + vm_pindex_t inc; + int slot; + int level; + void *val; + int outidx; + int loops = 0; + + CTR3(KTR_VM, "lookupn: tree %p, start %p, end %p", + rtree, (void *)start, (void *)end); + outidx = 0; + max = VM_RADIX_MAX(rtree->rt_height); + if (start > max) + return 0; + if (end > max + 1) + end = max + 1; + if (end == 0) + end = -1; +restart: + loops++; + if (loops > 1000) + panic("vm_radix_lookupn: looping %d\n", loops); + /* + * Search the tree from the top for any leaf node holding an index + * between start and end. + */ + level = rtree->rt_height - 1; + rnode = rtree->rt_root; + while (rnode) { + slot = vm_radix_slot(start, level); + CTR5(KTR_VM, + "lookupn: tree %p, index %p, level %d, slot %d, child %p", + rtree, (void *)start, level, slot, rnode->rn_child[slot]); + if (level == 0) + break; + /* + * If we don't have an exact match we must start our search + * from the next leaf and adjust our index appropriately. + */ + if ((child = rnode->rn_child[slot]) == NULL) { + /* + * Calculate how much to increment our index by + * based on the tree level. We must truncate the + * lower bits to start from the begnning of the next + * leaf. + */ + inc = 1LL << (level * VM_RADIX_WIDTH); + start &= ~VM_RADIX_MAX(level); + start += inc; + slot++; + CTR5(KTR_VM, + "lookupn: start %p end %p inc %d mask 0x%lX slot %d", + (void *)start, (void *)end, inc, ~VM_RADIX_MAX(level), slot); + for (; slot < VM_RADIX_COUNT && start < end; + slot++, start += inc) { + child = rnode->rn_child[slot]; + if (child) + break; + } + } + rnode = child; + level--; + } + if (rnode == NULL) { + /* + * If we still have another range to search, start looking + * from the next node. Otherwise, return what we've already + * found. The loop above has already adjusted start to the + * beginning of the next node. + * + * Detect start wrapping back to 0 and return in this case. + */ + if (start < end && start != 0) + goto restart; + goto out; + } + for (; outidx < cnt && slot < VM_RADIX_COUNT && start < end; + slot++, start++) { + val = rnode->rn_child[slot]; + if (val == NULL) + continue; + out[outidx++] = val; + } + /* + * Go fetch the next page to fill the requested number of pages + * otherwise the caller will simply call us again to fulfill the + * same request after the structures are pushed out of cache. + */ + if (outidx < cnt && start < end) + goto restart; + +out: + *next = start; + + return (outidx); +} + +/* + * Look up any entry at a position greater or equal to index. + */ +void * +vm_radix_lookup_ge(struct vm_radix *rtree, vm_pindex_t index) +{ + vm_pindex_t max; + void *val; + int n; + + max = VM_RADIX_MAX(rtree->rt_height); + n = vm_radix_lookupn(rtree, index, max + 1, &val, 1, &max); + if (n) + return (val); + return (NULL); +} + +/* + * Look up any entry at a position less than or equal to index. + */ +void * +vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index) +{ + return NULL; +} + +/* + * Remove the specified index from the tree. If possible the height of the + * tree is adjusted after deletion. The value stored at index is returned + * panics if the key is not present. + */ +void * +vm_radix_remove(struct vm_radix *rtree, vm_pindex_t index) +{ + struct vm_radix_node *stack[VM_RADIX_LIMIT]; + struct vm_radix_node *rnode; + void *val; + int level; + int slot; + + KASSERT(index <= VM_RADIX_MAX(rtree->rt_height), + ("vm_radix_remove: %p index %jd out of range %jd.", + rtree, index, VM_RADIX_MAX(rtree->rt_height))); + val = NULL; + rnode = rtree->rt_root; + level = rtree->rt_height - 1; + /* + * Find the node and record the path in stack. + */ + while (level && rnode) { + stack[level] = rnode; + slot = vm_radix_slot(index, level); + rnode = rnode->rn_child[slot]; + CTR5(KTR_VM, + "remove: tree %p, index %p, level %d, slot %d, child %p", + rtree, (void *)index, level, slot, rnode->rn_child[slot]); + level--; + } + slot = vm_radix_slot(index, 0); + KASSERT(rnode != NULL && rnode->rn_child[slot] != NULL, + ("vm_radix_remove: index %jd not present in the tree.\n", index)); + + val = rnode->rn_child[slot]; + for (;;) { + rnode->rn_child[slot] = NULL; + rnode->rn_count--; + if (rnode->rn_count > 0) + break; + vm_radix_node_put(rnode); + if (rnode == rtree->rt_root) { + rtree->rt_root = NULL; + rtree->rt_height = 0; + break; + } + rnode = stack[++level]; + slot = vm_radix_slot(index, level); + + } + return (val); +} + +/* + * Attempts to reduce the height of the tree. + */ +void +vm_radix_shrink(struct vm_radix *rtree) +{ + struct vm_radix_node *tmp; + + if (rtree->rt_root == NULL) + return; + + /* Adjust the height of the tree. */ + while (rtree->rt_root->rn_count == 1 && + rtree->rt_root->rn_child[0] != NULL) { + tmp = rtree->rt_root; + rtree->rt_root = tmp->rn_child[0]; + rtree->rt_height--; + tmp->rn_count--; + vm_radix_node_put(tmp); + } + /* Finally see if we have an empty tree. */ + if (rtree->rt_root->rn_count == 0) { + vm_radix_node_put(rtree->rt_root); + rtree->rt_root = NULL; + rtree->rt_height = 0; + } +} Added: user/attilio/vmcontention/sys/vm/vm_radix.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/attilio/vmcontention/sys/vm/vm_radix.h Sat Oct 22 23:34:37 2011 (r226645) @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2008 Mayur Shardul + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + */ + +#ifndef _VM_RADIX_H_ +#define _VM_RADIX_H_ + +#include + +/* Default values of the tree parameters */ +#define VM_RADIX_WIDTH 5 +#define VM_RADIX_COUNT (1 << VM_RADIX_WIDTH) +#define VM_RADIX_MASK (VM_RADIX_COUNT - 1) +#define VM_RADIX_LIMIT howmany((sizeof(vm_pindex_t) * NBBY), VM_RADIX_WIDTH) + +/* Calculates maximum value for a tree of height h. */ +#define VM_RADIX_MAX(h) \ + ((h) == VM_RADIX_LIMIT ? ((vm_pindex_t)-1) : \ + (((vm_pindex_t)1 << ((h) * VM_RADIX_WIDTH)) - 1)) + +struct vm_radix_node { + SLIST_ENTRY(vm_radix_node) next; + void *rn_child[VM_RADIX_COUNT]; /* child nodes. */ + uint16_t rn_count; /* Valid children. */ +}; + +struct vm_radix { + struct vm_radix_node *rt_root; /* Root node. */ + int rt_height; /* Number of levels + 1. */ +}; + +int vm_radix_insert(struct vm_radix *, vm_pindex_t, void *); +void *vm_radix_remove(struct vm_radix *, vm_pindex_t); +void *vm_radix_lookup(struct vm_radix *, vm_pindex_t); +int vm_radix_lookupn(struct vm_radix *rtree, vm_pindex_t start, + vm_pindex_t end, void **out, int cnt, vm_pindex_t *next); +void *vm_radix_lookup_ge(struct vm_radix *, vm_pindex_t); +void *vm_radix_lookup_le(struct vm_radix *, vm_pindex_t); +void vm_radix_shrink(struct vm_radix *); + +#endif /* !_VM_RADIX_H_ */ Modified: user/attilio/vmcontention/sys/vm/vm_reserv.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_reserv.c Sat Oct 22 22:56:20 2011 (r226644) +++ user/attilio/vmcontention/sys/vm/vm_reserv.c Sat Oct 22 23:34:37 2011 (r226645) @@ -309,6 +309,35 @@ vm_reserv_alloc_page(vm_object_t object, /* * Look for an existing reservation. */ +#ifdef VM_RADIX + mpred = vm_radix_lookup_le(&object->rtree, pindex); + if (mpred != NULL) { + KASSERT(mpred->pindex != pindex, + ("vm_reserv_alloc_page: pindex already allocated")); + rv = vm_reserv_from_page(mpred); + if (rv->object == object && vm_reserv_has_pindex(rv, pindex)) { + m = &rv->pages[VM_RESERV_INDEX(object, pindex)]; + if ((m->flags & (PG_CACHED | PG_FREE)) == 0) + return (NULL); + vm_reserv_populate(rv); + return (m); + } + } + msucc = vm_radix_lookup_ge(&object->rtree, pindex); + if (msucc != NULL) { + KASSERT(msucc->pindex != pindex, + ("vm_reserv_alloc_page: pindex already allocated")); + rv = vm_reserv_from_page(msucc); + if (rv->object == object && vm_reserv_has_pindex(rv, pindex)) { + m = &rv->pages[VM_RESERV_INDEX(object, pindex)]; + if ((m->flags & (PG_CACHED | PG_FREE)) == 0) + return (NULL); + vm_reserv_populate(rv); + return (m); + } + } + +#else msucc = NULL; mpred = object->root; while (mpred != NULL) { @@ -347,6 +376,7 @@ vm_reserv_alloc_page(vm_object_t object, msucc = NULL; mpred = object->root = vm_page_splay(pindex, object->root); } +#endif /* * Determine the first index to the left that can be used. Modified: user/attilio/vmcontention/sys/vm/vm_reserv.h ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_reserv.h Sat Oct 22 22:56:20 2011 (r226644) +++ user/attilio/vmcontention/sys/vm/vm_reserv.h Sat Oct 22 23:34:37 2011 (r226645) @@ -57,6 +57,9 @@ void vm_reserv_rename(vm_page_t m, vm_o vm_paddr_t vm_reserv_startup(vm_offset_t *vaddr, vm_paddr_t end, vm_paddr_t high_water); +#else +#define vm_reserv_level_iffullpop(m) -1 + #endif /* VM_NRESERVLEVEL > 0 */ #endif /* _KERNEL */ #endif /* !_VM_RESERV_H_ */