[Chapel Merge] Fix Wrong types for attribute LLVM Function Verify

Branch: refs/heads/master
Revision: 37cee92
Author: mppf
Log Message:

Merge pull request #17813 from mppf/fix-verify-llvm-issue

Fix Wrong types for attribute LLVM Function Verify error

E.g.

  $ chpl --verify --no-local --no-inline test/memory/figueroa/LeakedMemory6.chpl
  $ chpl --baseline --no-local --verify test/functions/iterators/vass/forall-in-standalone-iterator.chpl

  Wrong types for attribute: ....
  %chpl____wide__ddata_uint64_t (i64, i8*, i32, i64, i32)* @_ddata_allocate_noinit_chpl2

The issue here was that we were trying to add the noalias attribute to
_ddata_allocate_noinit but that was not well formed in --no-local
compilation because it is returning a struct (representing a wide
pointer).

This PR adjusts the code adding this attribute to only do so when the
return type is a pointer type. That will allow the noalias attribute to
apply even with --llvm-wide-opt.

Reviewed by @daviditen - thanks!