#!/usr/bin/env perl

use FindBin;
use lib $FindBin::Bin;
use Run qw(ret run);
use strict;

my $mem;
my $preset_mem=$ENV{'CHPL_MEM'};

if ($#ARGV != -1) {
  if ($ARGV[0] eq "--host") {
    $preset_mem = "default";
  }
}

if ($preset_mem eq "") {
  my $comm = run("comm");
  if ($comm eq "gasnet") {
    my $segment = run("commSegment");

    if ($segment eq "none" ||
        $segment eq "everything") {
      $mem = "default";
    } elsif ($segment eq "fast" ||
             $segment eq "large") {
      $mem = "dlmalloc";
    } else {
      # Unexpected segment type
      $mem = "default";
    }
  } elsif ($comm eq "armci") {
    $mem = "dlmalloc";
  } elsif ($comm eq "ugni") {
    $mem = "tcmalloc";
  } else {
    $mem = "default";
  }
} else {
  $mem = $preset_mem;
}

ret($mem);
print "$mem\n" unless caller;
