| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
interval as well.
llvm-svn: 65279
|
| |
|
|
| |
llvm-svn: 65239
|
| |
|
|
|
|
|
|
|
|
|
| |
Now we're using one gross, but quite robust hack :) (previous ones
did not work, for example, when ext_weak symbol was used deep inside
constant expression in the initializer).
The proper fix of this problem will require some quite huge asmprinter
changes and that's why was postponed. This fixes PR3629 by the way :)
llvm-svn: 65230
|
| |
|
|
|
|
| |
registers, and it doesn't produce side effects, just delete the instruction.
llvm-svn: 65218
|
| |
|
|
|
|
|
| |
that checks whether it's safe to transform a store of a bitcast
value into a store of the original value.
llvm-svn: 65201
|
| |
|
|
|
|
|
| |
- Correct comment.
- Whitespace changes.
llvm-svn: 65149
|
| |
|
|
| |
llvm-svn: 65121
|
| |
|
|
|
|
|
|
|
| |
redundant spills after coloring.
Ideally these would never get created in the first place, but until we enhance the spiller to have a more
global picture of what's happening, this is necessary for code quality in some circumstances.
llvm-svn: 65120
|
| |
|
|
|
|
| |
emitted.
llvm-svn: 65092
|
| |
|
|
| |
llvm-svn: 65068
|
| |
|
|
| |
llvm-svn: 65067
|
| |
|
|
| |
llvm-svn: 65065
|
| |
|
|
|
|
| |
"optimize-for-size" mode.
llvm-svn: 65064
|
| |
|
|
| |
llvm-svn: 64920
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that has not been JIT'd yet, the callee is put on a list of pending functions
to JIT. The call is directed through a stub, which is updated with the address
of the function after it has been JIT'd. A new interface for allocating and
updating empty stubs is provided.
Add support for removing the ModuleProvider the JIT was created with, which
would otherwise invalidate the JIT's PassManager, which is initialized with the
ModuleProvider's Module.
Add support under a new ExecutionEngine flag for emitting the infomration
necessary to update Function and GlobalVariable stubs after JITing them, by
recording the address of the stub and the name of the GlobalValue. This allows
code to be copied from one address space to another, where libraries may live
at different virtual addresses, and have the stubs updated with their new
correct target addresses.
llvm-svn: 64906
|
| |
|
|
| |
llvm-svn: 64888
|
| |
|
|
|
|
|
|
| |
of any Objective-C classes. It would be very helpful to debugger if the compiler encodes runtime version number in DWARF.
Add support for two additional DWARF attributes to encode Objective-C runtime version number.
llvm-svn: 64834
|
| |
|
|
|
|
|
|
| |
(Note: Eventually, commits like this will be handled via a pre-commit hook that
does this automagically, as well as expand tabs to spaces and look for 80-col
violations.)
llvm-svn: 64827
|
| |
|
|
| |
llvm-svn: 64815
|
| |
|
|
|
|
| |
exposed by recent availability fallthrough changes.
llvm-svn: 64745
|
| |
|
|
|
|
|
|
|
|
|
|
| |
U include/llvm/CodeGen/DebugLoc.h
U lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
U lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
U lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
Enable debug location generation at -Os. This goes with the reapplication of the
r63639 patch.
llvm-svn: 64715
|
| |
|
|
|
|
|
|
| |
one bit set, because the bit may be shifted off the end. Instead,
just check for a constant 1 being shifted. This is still sufficient
to handle all the cases in test/CodeGen/X86/bt.ll. This fixes PR3583.
llvm-svn: 64622
|
| |
|
|
| |
llvm-svn: 64582
|
| |
|
|
|
|
|
|
|
|
| |
Cleanup some warning.
Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.
Only tested with VS2008. hope it does not break anything. feel free to revert.
llvm-svn: 64554
|
| |
|
|
| |
llvm-svn: 64428
|
| |
|
|
|
|
|
| |
the new way, where all of the information is passed on SDNodes and machine
instructions.
llvm-svn: 64427
|
| |
|
|
|
|
|
|
| |
in inline asm as signed (what gcc does). Add partial support
for x86-specific "e" and "Z" constraints, with appropriate
signedness for printing.
llvm-svn: 64400
|
| |
|
|
| |
llvm-svn: 64381
|
| |
|
|
| |
llvm-svn: 64379
|
| |
|
|
|
|
| |
basic blocks, e.g. x86 fp stack registers.
llvm-svn: 64374
|
| |
|
|
| |
llvm-svn: 64373
|
| |
|
|
|
|
| |
registers to live-in set.
llvm-svn: 64372
|
| |
|
|
|
|
| |
calcMaxScratches simply compute the number of true data dependencies. This actually improve a couple of tests in dejagnu suite as many tests in llvm nightly test suite.
llvm-svn: 64369
|
| |
|
|
| |
llvm-svn: 64340
|
| |
|
|
|
|
| |
a previous instruction.
llvm-svn: 64339
|
| |
|
|
| |
llvm-svn: 64328
|
| |
|
|
|
|
|
| |
unless they actually have data successors, and likewise for nodes
with no data successors unless they actually have data precessors.
llvm-svn: 64327
|
| |
|
|
|
|
|
|
|
| |
is determined by whether the node has a Flag operand. However, if the
node does have a Flag operand, it will be glued to its register's
def, so the heuristic would end up spuriously applying to whatever
node is the def.
llvm-svn: 64319
|
| |
|
|
|
|
|
|
|
|
|
| |
It was transforming (x&y)==y to (x&y)!=0 in the case where
y is variable and known to have at most one bit set (e.g. z&1).
This is not correct; the expressions are not equivalent when y==0.
I believe this patch salvages what can be salvaged, including
all the cases in bt.ll. Dan, please review.
Fixes gcc.c-torture/execute/20040709-[12].c
llvm-svn: 64314
|
| |
|
|
|
|
| |
availability information over BB boundaries. It visits BB's in depth first order. After visiting a BB if it find a successor which has a single predecessor it visits the successor next without clearing the availability information. This allows the successor to omit reloads or change them into copies.
llvm-svn: 64298
|
| |
|
|
|
|
|
|
|
|
|
| |
instruction index across each part. Instruction indices are used
to make live range queries, and live ranges can extend beyond
scheduling region boundaries.
Refactor the ScheduleDAGSDNodes class some more so that it
doesn't have to worry about this additional information.
llvm-svn: 64288
|
| |
|
|
|
|
|
| |
an index. This code is on the hot-path because the current
way SDep edges are uniqued has quadratic complexity.
llvm-svn: 64262
|
| |
|
|
|
|
|
|
|
| |
a scheduling region boundary. This isn't necessary for
correctness; it helps with compile time, as it avoids the need
for data- and anti-dependencies from all spills and reloads on
the stack-pointer modification.
llvm-svn: 64255
|
| |
|
|
|
|
|
|
|
|
|
| |
scheduling, and generalize is so that preserves state across
scheduling regions. This fixes incorrect live-range information around
terminators and labels, which are effective region boundaries.
In place of looking for terminators to anchor inter-block dependencies,
introduce special entry and exit scheduling units for this purpose.
llvm-svn: 64254
|
| |
|
|
|
|
| |
successor. A control successor doesn't read result(s) produced by the scheduling unit being evaluated.
llvm-svn: 64210
|
| |
|
|
| |
llvm-svn: 64204
|
| |
|
|
|
|
| |
abort instead of silently continue.
llvm-svn: 64184
|
| |
|
|
| |
llvm-svn: 64164
|
| |
|
|
| |
llvm-svn: 64163
|
| |
|
|
|
|
| |
AnalyzeBrnach bug are fixed.
llvm-svn: 64126
|