Changes

Summary

  1. [X86][BranchAlign] Suppress branch alignment for {,_}__tls_get_addr (details)
  2. [X86] Remove X86ISD::FILD_FLAG and stop gluing nodes together. (details)
Commit 0cb415c189092e75eaaccabbae41497e446fb3f1 by maskray
[X86][BranchAlign] Suppress branch alignment for {,_}__tls_get_addr
The x86-64 General Dynamic TLS code sequence uses prefixes to allow
linker relaxation.  Adding segment override prefix or NOPs can break
linker relaxation (ld -pie/-no-pie).
i386 General Dynamic and x86-64 Local Dynamic do not use prefixes, but
for simplicity, just disable auto padding consistently.
Reviewed By: skan, LuoYuanke
Differential Revision: https://reviews.llvm.org/D72878
The file was addedllvm/test/CodeGen/X86/align-branch-boundary-suppressions-tls.ll
The file was modifiedllvm/lib/Target/X86/X86MCInstLower.cpp
Commit 5fa2022ec0051bad4f37025233d6e888808a219c by craig.topper
[X86] Remove X86ISD::FILD_FLAG and stop gluing nodes together.
Summary: I think whatever problem the gluing was fixing has long since
been fixed. We don't have any of the restrictions on FP stack stuff that
existed back when this was first added.
I had to change which type we use for FILD in BuildFILD when X86 was
enabled because most of the isel patterns block f32/f64 instructions
when SSE1/SSE2 are enabled. So I needed to use the f80 pattern, but this
shouldn't have an effect the generated code since there is only one FILD
instruction anyway. We already use f80 explicitly in other other places.
Reviewers: RKSimon, spatel
Reviewed By: RKSimon
Subscribers: andrew.w.kaylor, scanon, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D72805
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.h
The file was modifiedllvm/lib/Target/X86/X86InstrFPStack.td
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vec-strict-inttofp-512.ll
The file was modifiedllvm/test/CodeGen/X86/vec-strict-inttofp-256.ll