blob: 09a8ece077704d6813ac631a6c8b781cf59f7b13 [file] [log] [blame]
//=------- Aliasing.h - Type-based alias analysis metadata --------*- C++ -*-=//
//
// Copyright (C) 2012 to 2013 Duncan Sands.
//
// This file is part of DragonEgg.
//
// DragonEgg is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free Software
// Foundation; either version 2, or (at your option) any later version.
//
// DragonEgg is distributed in the hope that it will be useful, but WITHOUT ANY
// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
// A PARTICULAR PURPOSE. See the GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License along with
// DragonEgg; see the file COPYING. If not, write to the Free Software
// Foundation, 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
//
//===----------------------------------------------------------------------===//
// This file declares routines for generating TBAA metadata from what GCC knows
// about pointer aliasing.
//===----------------------------------------------------------------------===//
#ifndef DRAGONEGG_ALIASING_H
#define DRAGONEGG_ALIASING_H
// Forward declarations.
namespace llvm { class MDNode; }
union tree_node;
/// describeAliasSet - Return TBAA metadata describing what a load from or store
/// to the given tree may alias.
extern llvm::MDNode *describeAliasSet(tree_node *t);
#endif /* DRAGONEGG_ALIASING_H */