Mercurial > hg > truffle
changeset 16669:ac6cbf6570dd
Merge.
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Thu, 31 Jul 2014 18:47:10 +0200 |
parents | f1d1ec9bcf24 (diff) 90c97a4bd2da (current diff) |
children | 4ae1d1ed5cc1 |
files | |
diffstat | 3 files changed, 31 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mxtool/mx.py Thu Jul 31 16:35:17 2014 +0200 +++ b/mxtool/mx.py Thu Jul 31 18:47:10 2014 +0200 @@ -76,12 +76,18 @@ self.excludedDependencies = excludedDependencies self.distDependencies = distDependencies - def sorted_deps(self, includeLibs=False): + def sorted_deps(self, includeLibs=False, transitive=False): + deps = [] + if transitive: + for depDist in [distribution(name) for name in self.distDependencies]: + for d in depDist.sorted_deps(includeLibs=includeLibs, transitive=True): + if d not in deps: + deps.append(d) try: excl = [dependency(d) for d in self.excludedDependencies] except SystemExit as e: abort('invalid excluded dependency for {} distribution: {}'.format(self.name, e)) - return [d for d in sorted_deps(self.deps, includeLibs=includeLibs) if d not in excl] + return deps + [d for d in sorted_deps(self.deps, includeLibs=includeLibs) if d not in excl] def __str__(self): return self.name @@ -3486,7 +3492,8 @@ _zip_files(libFiles, suite.dir, configLibsZip) # Create an Eclipse project for each distribution that will create/update the archive - # for the distribution whenever any project of the distribution is updated. + # for the distribution whenever any (transitively) dependent project of the + # distribution is updated. for dist in suite.dists: if hasattr(dist, 'subDir'): projectDir = join(suite.dir, dist.subDir, dist.name + '.dist') @@ -3494,7 +3501,7 @@ projectDir = join(suite.dir, dist.name + '.dist') if not exists(projectDir): os.makedirs(projectDir) - distProjects = [d for d in dist.sorted_deps() if d.isProject()] + distProjects = [d for d in dist.sorted_deps(transitive=True) if d.isProject()] relevantResources = [] for p in distProjects: for srcDir in p.source_dirs(): @@ -3512,7 +3519,7 @@ out.close('projects') out.open('buildSpec') dist.dir = projectDir - dist.javaCompliance = max([p.javaCompliance for p in distProjects] + [JavaCompliance('1.8')]) + dist.javaCompliance = max([p.javaCompliance for p in distProjects]) _genEclipseBuilder(out, dist, 'Create' + dist.name + 'Dist', 'archive @' + dist.name, relevantResources=relevantResources, logToFile=True, refresh=False, async=True) out.close('buildSpec') out.open('natures')
--- a/src/gpu/hsail/vm/gpu_hsail_Tlab.hpp Thu Jul 31 16:35:17 2014 +0200 +++ b/src/gpu/hsail/vm/gpu_hsail_Tlab.hpp Thu Jul 31 18:47:10 2014 +0200 @@ -138,6 +138,12 @@ HSAILTlabInfo* pTlabInfo = &_tlab_infos_pool_start[i]; _cur_tlab_infos[i] = pTlabInfo; pTlabInfo->initialize(tlab->start(), tlab->top(), tlab->end(), donorThread, this); + + // reset the real tlab fields to zero so we are sure the thread doesn't use it + tlab->set_start(NULL); + tlab->set_top(NULL); + tlab->set_pf_top(NULL); + tlab->set_end(NULL); } } @@ -182,6 +188,16 @@ tlabInfo->_top = tlabInfo->last_good_top(); } + // if the donor thread allocated anything while we were running + // we will retire its tlab before overwriting with our new one + if (tlab->top() != NULL) { + if (TraceGPUInteraction) { + tty->print("Donor Thread allocated new tlab"); + printTlabInfoFromThread(tlab); + } + tlab->make_parsable(true); + } + // fill the donor thread tlab with the tlabInfo information // we do this even if it will get overwritten by a later tlabinfo // because it helps with tlab statistics for that donor thread
--- a/src/share/vm/memory/threadLocalAllocBuffer.hpp Thu Jul 31 16:35:17 2014 +0200 +++ b/src/share/vm/memory/threadLocalAllocBuffer.hpp Thu Jul 31 18:47:10 2014 +0200 @@ -38,6 +38,9 @@ // used to make it available for such multiplexing. class ThreadLocalAllocBuffer: public CHeapObj<mtThread> { friend class VMStructs; +#ifdef GRAAL + friend class HSAILAllocationInfo; +#endif private: HeapWord* _start; // address of TLAB HeapWord* _top; // address after last allocation