| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
To support this, move IsCalleePop from X86ISelLowering to X86Subtarget.
llvm-svn: 104866
|
|
|
|
| |
llvm-svn: 102493
|
|
|
|
| |
llvm-svn: 101979
|
|
|
|
|
|
|
|
|
| |
a new subtarget option for AES and check for the support. Add "westmere"
line of processors and add AES-NI support to the core i7.
Add a couple of TODOs for information I couldn't verify.
llvm-svn: 100231
|
|
|
|
| |
llvm-svn: 100089
|
|
|
|
| |
llvm-svn: 98810
|
|
|
|
|
|
| |
fix the rest of the buildbot failures on non-x86 hosts.
llvm-svn: 98522
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modules and ModuleProviders. Because the "ModuleProvider" simply materializes
GlobalValues now, and doesn't provide modules, it's renamed to
"GVMaterializer". Code that used to need a ModuleProvider to materialize
Functions can now materialize the Functions directly. Functions no longer use a
magic linkage to record that they're materializable; they simply ask the
GVMaterializer.
Because the C ABI must never change, we can't remove LLVMModuleProviderRef or
the functions that refer to it. Instead, because Module now exposes the same
functionality ModuleProvider used to, we store a Module* in any
LLVMModuleProviderRef and translate in the wrapper methods. The bindings to
other languages still use the ModuleProvider concept. It would probably be
worth some time to update them to follow the C++ more closely, but I don't
intend to do it.
Fixes http://llvm.org/PR5737 and http://llvm.org/PR5735.
llvm-svn: 94686
|
|
|
|
|
|
|
|
| |
ignore alignment requirements for SIMD memory operands. This
is useful on architectures like the AMD 10h that do not trap on
unaligned references if a status bit is twiddled at startup time.
llvm-svn: 93151
|
|
|
|
| |
llvm-svn: 92648
|
|
|
|
|
|
| |
partial update instructions unless optimizing for size.
llvm-svn: 91910
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
be non-optimal. To be precise, we should avoid folding loads if the instructions
only update part of the destination register, and the non-updated part is not
needed. e.g. cvtss2sd, sqrtss. Unfolding the load from these instructions breaks
the partial register dependency and it can improve performance. e.g.
movss (%rdi), %xmm0
cvtss2sd %xmm0, %xmm0
instead of
cvtss2sd (%rdi), %xmm0
An alternative method to break dependency is to clear the register first. e.g.
xorps %xmm0, %xmm0
cvtss2sd (%rdi), %xmm0
llvm-svn: 91672
|
|
|
|
|
|
| |
current form, it is too expensive in compile time.
llvm-svn: 90781
|
|
|
|
|
|
| |
and support for blockaddresses in x86-32 PIC mode.
llvm-svn: 89506
|
|
|
|
|
|
|
|
|
| |
- This is an initial step towards -march=native support in Clang, and towards
eliminating host dependencies in the targets. See PR5389.
- Patch by Roman Divacky!
llvm-svn: 88768
|
|
|
|
|
|
| |
along the critical path.
llvm-svn: 88682
|
|
|
|
| |
llvm-svn: 86634
|
|
|
|
| |
llvm-svn: 84200
|
|
|
|
|
|
| |
non-pic mode. rdar://7187172.
llvm-svn: 80904
|
|
|
|
| |
llvm-svn: 80892
|
|
|
|
|
|
|
|
| |
whether sse is available. Just use consult subtarget.
No functionality changes.
llvm-svn: 80880
|
|
|
|
|
|
|
| |
conditional moves as a subtarget feature. This is the easy part of
PR4841.
llvm-svn: 80763
|
|
|
|
|
|
|
|
| |
Some other minor win64 fixes as well.
Patch by Michael Beck!
llvm-svn: 80370
|
|
|
|
|
|
|
| |
instead of X86 Subtarget. This elimianates dependencies on
X86Subtarget from X86TAI.
llvm-svn: 78746
|
|
|
|
| |
llvm-svn: 78219
|
|
|
|
|
|
| |
- Tidy up some headers.
llvm-svn: 77929
|
|
|
|
|
|
|
|
|
|
| |
Module*.
Also, dropped uses of TargetMachine where unnecessary. The only target which
still takes a TargetMachine& is Mips, I would appreciate it if someone would
normalize this to match other targets.
llvm-svn: 77918
|
|
|
|
| |
llvm-svn: 76356
|
|
|
|
|
|
| |
compilation mode) do not require extra load from stub. This fixes ExecutionEngine/2005-12-02-TailCallBug.ll.
llvm-svn: 76121
|
|
|
|
| |
llvm-svn: 75277
|
|
|
|
| |
llvm-svn: 75276
|
|
|
|
| |
llvm-svn: 75275
|
|
|
|
| |
llvm-svn: 75274
|
|
|
|
|
|
| |
"stub style pic in dynamic-no-pic" mode.
llvm-svn: 75273
|
|
|
|
|
|
| |
elimiantes the last use of GVRequiresExtraLoad, so delete it.
llvm-svn: 75244
|
|
|
|
|
|
| |
need for other purposes.
llvm-svn: 75243
|
|
|
|
|
|
|
| |
is just a trivial wrapper around "ClassifyGlobalReference", which
stole a ton of logic from LowerGlobalAddress.
llvm-svn: 75237
|
|
|
|
| |
llvm-svn: 75232
|
|
|
|
|
|
| |
more complex and slow than just directly testing what we care about.
llvm-svn: 75231
|
|
|
|
|
|
|
| |
split its handling out to PCRelGVRequiresExtraLoad, and simplify code
based on this.
llvm-svn: 75230
|
|
|
|
| |
llvm-svn: 75229
|
|
|
|
|
|
| |
in pic or dynamic-no-pic mode. Also, x86-64 never used picstylegot.
llvm-svn: 75101
|
|
|
|
|
|
| |
with DLLImport symbols even when in -static mode.
llvm-svn: 75093
|
|
|
|
|
|
| |
initialization problems.
llvm-svn: 74350
|
|
|
|
|
|
|
|
|
| |
ABI. The missing piece is support for putting "homogeneous aggregates"
into registers.
Patch by Sandeep Patel!
llvm-svn: 73095
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- added processors k8-sse3, opteron-sse3, athlon64-sse3, amdfam10, and
barcelona with appropriate sse3/4a levels
- added FeatureSSE4A for amdfam10 processors
in X86Subtarget:
- added hasSSE4A
- updated AutoDetectSubtargetFeatures to detect SSE4A
- updated GetCurrentX86CPU to detect family 15 with sse3 as k8-sse3 and
family 10h as amdfam10
New processor names match those used by gcc.
Patch by Paul Redmond!
llvm-svn: 72434
|
|
|
|
|
|
| |
relocation mode.
llvm-svn: 72160
|
|
|
|
|
|
| |
Nicolas Capens!
llvm-svn: 70057
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and extern_weak_odr. These are the same as the non-odr versions,
except that they indicate that the global will only be overridden
by an *equivalent* global. In C, a function with weak linkage can
be overridden by a function which behaves completely differently.
This means that IP passes have to skip weak functions, since any
deductions made from the function definition might be wrong, since
the definition could be replaced by something completely different
at link time. This is not allowed in C++, thanks to the ODR
(One-Definition-Rule): if a function is replaced by another at
link-time, then the new function must be the same as the original
function. If a language knows that a function or other global can
only be overridden by an equivalent global, it can give it the
weak_odr linkage type, and the optimizers will understand that it
is alright to make deductions based on the function body. The
code generators on the other hand map weak and weak_odr linkage
to the same thing.
llvm-svn: 66339
|
|
|
|
| |
llvm-svn: 65662
|