[Mesa-dev] [PATCH 1/3] nv50/ir: use C++11 standard std::unordered_map if possible

Ilia Mirkin imirkin at alum.mit.edu
Thu Oct 15 09:11:42 PDT 2015


This patch and the nv30 one are both

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

I guess adding a cc: stable makes sense for these too? Or are further
fixes required that would make building 11.0.x impractical?

On Thu, Oct 15, 2015 at 11:46 AM, Chih-Wei Huang
<cwhuang at android-x86.org> wrote:
> Note Android version before Lollipop is not supported.
>
> Signed-off-by: Chih-Wei Huang <cwhuang at linux.org.tw>
> ---
>  src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp | 20 +++++++++++++++++---
>  1 file changed, 17 insertions(+), 3 deletions(-)
>
> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> index 400b9f0..7859c8e 100644
> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
> @@ -25,10 +25,24 @@
>
>  #include <stack>
>  #include <limits>
> +#if __cplusplus >= 201103L
> +#include <unordered_map>
> +#else
>  #include <tr1/unordered_map>
> +#endif
>
>  namespace nv50_ir {
>
> +#if __cplusplus >= 201103L
> +using std::hash;
> +using std::unordered_map;
> +#elif !defined(ANDROID)
> +using std::tr1::hash;
> +using std::tr1::unordered_map;
> +#else
> +#error Android release before Lollipop is not supported!
> +#endif
> +
>  #define MAX_REGISTER_FILE_SIZE 256
>
>  class RegisterSet
> @@ -349,12 +363,12 @@ RegAlloc::PhiMovesPass::needNewElseBlock(BasicBlock *b, BasicBlock *p)
>
>  struct PhiMapHash {
>     size_t operator()(const std::pair<Instruction *, BasicBlock *>& val) const {
> -      return std::tr1::hash<Instruction*>()(val.first) * 31 +
> -         std::tr1::hash<BasicBlock*>()(val.second);
> +      return hash<Instruction*>()(val.first) * 31 +
> +         hash<BasicBlock*>()(val.second);
>     }
>  };
>
> -typedef std::tr1::unordered_map<
> +typedef unordered_map<
>     std::pair<Instruction *, BasicBlock *>, Value *, PhiMapHash> PhiMap;
>
>  // Critical edges need to be split up so that work can be inserted along
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list