Memcpy / memset for address spaces >= 256 are not supported in the
code generator. This commit adds an extra check that stops the pass from
creating such illegal memsets.
Details
- Reviewers
- None
Diff Detail
Event Timeline
This seems target dependent. Im not sure why, but, for example, SystemZ does permit it (or at the very least, continues to form the call. Perhaps move this behind a target specific check?
For the test, can you actually run it explicitly against all the architectures we support?
I don't think this is target dependent. See this assert. It fails for any target if the address space is >= 256. As I said on IRC, you probably tested with assertions disabled.
As Matt Arsenault pointed out on the mailing list, this assert is actually a bug and is implicitly assuming the X86 target. A FIXME was added in rL227191.
I'm abandoning this revision because my assumption, based on that assert, that memset is supported iff the address space is < 256 turned out to be wrong.