- Feb 10, 2012
-
-
Jakob Stoklund Olesen authored
This makes global live range splitting behave identically with and without register mask operands. This is not necessarily the best way of using register masks for live range splitting. It would be more efficient to first split global live ranges around calls (i.e., register masks), and reserve the fine grained per-physreg interference guidance for global live ranges that do not cross calls. For now the goal is to produce identical assembly when enabling register masks. llvm-svn: 150259
-
Jakob Stoklund Olesen authored
llvm-svn: 150258
-
Pete Cooper authored
llvm-svn: 150257
-
Jason W Kim authored
llvm-svn: 150251
-
Hal Finkel authored
This allows BBVectorize to check the "unknown instruction" list in the alias sets. This is important to prevent instruction fusing from reordering function calls. Resolves PR11920. llvm-svn: 150250
-
Hal Finkel authored
llvm-svn: 150249
-
Hal Finkel authored
These query functions are safe for external use and, furthermore, are the only way to make queries against the "unknown instructions" array. BBVectorize will use these functions. llvm-svn: 150248
-
Duncan Sands authored
don't assume it is a boolean. llvm-svn: 150247
-
Duncan Sands authored
is that patterns no longer match for vectors of booleans, because you only get ConstantDataVector when the vector element type is i8, i16, etc, not when it is i1). Original commit message: Remove some dead code and tidy things up now that vectors use ConstantDataVector instead of always using ConstantVector. llvm-svn: 150246
-
Benjamin Kramer authored
Put instruction names into an indexed string table on the side, removing a pointer from MCInstrDesc. Make them accessible through MCInstrInfo. They are only used for debugging purposes so this doesn't have an impact on performance. X86MCTargetDesc.o goes from 630K to 461K on x86_64. llvm-svn: 150245
-
Andrew Trick authored
llvm-svn: 150233
-
Jia Liu authored
llvm-svn: 150229
-
Andrew Trick authored
llvm-svn: 150228
-
Andrew Trick authored
llvm-svn: 150227
-
Andrew Trick authored
Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. llvm-svn: 150226
-
Andrew Trick authored
llvm-svn: 150225
-
Lang Hames authored
llvm-svn: 150224
-
Jim Grosbach authored
rdar://10838899 llvm-svn: 150222
-
Jakob Stoklund Olesen authored
When checking a local live range for interference, restrict the binary search to the single block. llvm-svn: 150220
-
Jakob Stoklund Olesen authored
Provide API to get a list of register mask slots and bits in a basic block. llvm-svn: 150219
-
Jakob Stoklund Olesen authored
No looping and binary searches necessary. Return a pointer to the containing block instead of just a bool. llvm-svn: 150218
-
Benjamin Kramer authored
llvm-svn: 150214
-
- Feb 09, 2012
-
-
David Blaikie authored
Unify default construction of error_code uses on this idiom so that users don't feel compelled to make static globals for naming convenience. (unfortunately I couldn't make the original ctor private as some APIs don't return their result, instead using an out parameter (that makes sense to default construct) - which is a bit of a pity. I did, however, find/fix some cases of unnecessary default construction of error_code before I hit the unfixable cases) llvm-svn: 150197
-
Jakob Stoklund Olesen authored
This only adds the interference checks required for correctness. We still need to take advantage of register masks for the interference driven live range splitting. llvm-svn: 150191
-
Devang Patel authored
Now subprogram descriptors are not collected by llvm.dbg.sp NamedMDNode. Update document to reflect this change. llvm-svn: 150187
-
Benjamin Kramer authored
llvm-svn: 150183
-
Sirish Pande authored
llvm-svn: 150178
-
Benjamin Kramer authored
GlobalOpt runs early in the pipeline (before inlining) and complex class hierarchies often introduce bitcasts or GEPs which weren't optimized away. Teach it to ignore side-effect free instructions instead of depending on other passes to remove them. llvm-svn: 150174
-
Benjamin Kramer authored
Store just the SimpleValueType in the generated VT tables for each register class, eliminating static ctors. llvm-svn: 150173
-
Benjamin Kramer authored
No change on i386. llvm-svn: 150170
-
James Molloy authored
Teach the MC and disassembler about SoftFail, and hook it up to UNPREDICTABLE on ARM. Wire this to tBLX in order to provide test coverage. llvm-svn: 150169
-
Craig Topper authored
llvm-svn: 150167
-
Craig Topper authored
Flatten some of the arrays in the X86 disassembler tables to reduce space needed to store pointers on 64-bit hosts and reduce relocations needed at startup. Part of PR11953. llvm-svn: 150161
-
Lang Hames authored
Failure to preserve kills was causing LiveIntervals to miss some EFLAGS live ranges. Unfortunately I've been unable to reduce a good test case yet. llvm-svn: 150152
-
NAKAMURA Takumi authored
llvm-svn: 150151
-
Lang Hames authored
llvm-svn: 150150
-
Lang Hames authored
llvm-svn: 150149
-
Andrew Trick authored
Split CodeGen into stages. Distinguish between optimization and correctness. llvm-svn: 150122
-
Andrew Trick authored
llvm-svn: 150121
-
David Blaikie authored
If someone would prefer a clear name for the 'success' error_value we could come up with one - potentially just a 'named constructor' style 'error_value::success()' to make this expression more self-documenting. If I see this come up in other cases I'll certainly consider it. One step along the way to resolving PR11944. llvm-svn: 150120
-