[GOFF] Write out relocations in the GOFF writer (#167054)
Add support for writing relocations. Since the symbol numbering is only
available after the symbols are written, the relocations are collected
in a vector. At write time, the relocations are converted using the
symbols ids, compressed and written out. A relocation data record is
limited to 32K-1 bytes, which requires making sure that larger
relocation data is written into multiple records.
ValueTracking: Improve accuracy of 0 handling with PreserveSign
If the source value is known not subnormal and not zero with the
same sign, we can infer the result is also not zero with the same
sign.
[GOFF] Write out relocations in the GOFF writer
Add support for writing relocations. Since the symbol numbering is only
available after the symbols are written, the relocations are collected
in a vector. At write time, the relocations are converted using the
symbols ids, compressed and written out. A relocation data record is
limited to 32K-1 bytes, which requires making sure that larger relocation
data is written into multiple records.
[HLSL] Improve `packoffset` error message (#173077)
Aggregate types cannot have a component specified on a `packoffset` annotation (i.e. `packoffset(c1.y)`). If the component is preset and it is not 'x', the reported error is `register or packoffset bind is not valid`.
For non-aggregate types with a component that does not fit the constant buffer row size of 128 bits minus the component offset, the error message is `packoffset cannot cross register boundary`.
Also fixes grammar in a related error message.
Fixes #128109
[CIR] Add sizeof for fixed vector type (#172861)
Add sizeof for fixed vector type and Mark sizeof & alignof as NYI for
scalable Vector as it depends on using llvm.vscale not just the vector
size
[GOFF] Emit symbols for functions. (#144437)
A function entry is mapped to a LD symbol with an offset to the begin of
the section. HLASM syntax is emitted accordingly.
[GOFF] Write out relocations in the GOFF writer
Add support for writing relocations. Since the symbol numbering is only
available after the symbols are written, the relocations are collected
in a vector. At write time, the relocations are converted using the
symbols ids, compressed and written out. A relocation data record is
limited to 32K-1 bytes, which requires making sure that larger relocation
data is written into multiple records.