- Feb 08, 2011
-
-
Rafael Espindola authored
MemoryBuffer::getOpenFile to not close the file descriptor. llvm-svn: 125128
-
Jakob Stoklund Olesen authored
This is a lot easier than trying to get kill flags right during live range splitting and rematerialization. llvm-svn: 125113
-
Jakob Stoklund Olesen authored
After uses of a live range are removed, recompute the live range to only cover the remaining uses. This is necessary after rematerializing the value before some (but not all) uses. llvm-svn: 125058
-
- Feb 07, 2011
-
-
Bruno Cardoso Lopes authored
Motivation: Improve the parsing of not usual (different from registers or immediates) operand forms. This commit implements only the generic support. The ARM specific modifications will come next. A table like the one below is autogenerated for every instruction containing a 'ParserMethod' in its AsmOperandClass static const OperandMatchEntry OperandMatchTable[20] = { /* Mnemonic, Operand List Mask, Operand Class, Features */ { "cdp", 29 /* 0, 2, 3, 4 */, MCK_Coproc, Feature_IsThumb|Feature_HasV6 }, { "cdp", 58 /* 1, 3, 4, 5 */, MCK_Coproc, Feature_IsARM }, A matcher function very similar (but lot more naive) to MatchInstructionImpl scans the table. After the mnemonic match, the features are checked and if the "to be parsed" operand index is present in the mask, there's a real match. Then, a switch like the one below dispatch the parsing to the custom method provided in 'ParseMethod': case MCK_Coproc: return TryParseCoprocessorOperandName(Operands); llvm-svn: 125030
-
Chris Lattner authored
Factor some code better. llvm-svn: 125006
-
Duncan Sands authored
to simplify the "(X/Y)*Y->X when the division is exact" transform. llvm-svn: 125004
-
Duncan Sands authored
llvm-svn: 125002
-
- Feb 06, 2011
-
-
Chris Lattner authored
instcombine xform to exercise this. Nothing forms exact udivs yet though. This is progress on PR8862 llvm-svn: 124992
-
- Feb 05, 2011
-
-
NAKAMURA Takumi authored
config.h.* have conditions whether each symbol is defined or not. Autoconf and CMake may check symbols in libgcc.a for JIT on Mingw. llvm-svn: 124950
-
Eric Christopher authored
a) Making it a per call site bonus for functions that we can move from indirect to direct calls. b) Reduces the bonus from 500 to 100 per call site. c) Subtracts the size of the possible newly inlineable call from the bonus to only add a bonus if we can inline a small function to devirtualize it. Also changes the bonus from a positive that's subtracted to a negative that's added. Fixes the remainder of rdar://8546196 by reducing the object file size after inlining by 84%. llvm-svn: 124916
-
- Feb 04, 2011
-
-
Devang Patel authored
llvm-svn: 124904
-
Jason W Kim authored
5 to match the current doc. Added FIXME reminder Make it really configurable later. llvm-svn: 124899
-
Jakob Stoklund Olesen authored
A live range cannot be split everywhere in a basic block. A split must go before the first terminator, and if the variable is live into a landing pad, the split must happen before the call that can throw. llvm-svn: 124894
-
Daniel Dunbar authored
llvm-svn: 124870
-
Andrew Trick authored
precisely track pressure on a selection DAG, but we can at least keep it balanced. This design accounts for various interesting aspects of selection DAGS: register and subregister copies, glued nodes, dead nodes, unused registers, etc. Added SUnit::NumRegDefsLeft and ScheduleDAGSDNodes::RegDefIter. Note: I disabled PrescheduleNodesWithMultipleUses when register pressure is enabled, based on no evidence other than I don't think it makes sense to have both enabled. llvm-svn: 124853
-
Bob Wilson authored
llvm-svn: 124830
-
Bob Wilson authored
llvm-svn: 124829
-
- Feb 03, 2011
-
-
Oscar Fuentes authored
macros. llvm-svn: 124824
-
Richard Osborne authored
llvm-svn: 124794
-
Eric Christopher authored
llvm-svn: 124779
-
Eric Christopher authored
llvm-svn: 124778
-
Oscar Fuentes authored
This is the cmake equivalent for r124769. llvm-svn: 124775
-
Daniel Dunbar authored
llvm-svn: 124771
-
Daniel Dunbar authored
llvm-svn: 124770
-
Jakob Stoklund Olesen authored
The greedy register allocator revealed some problems with the value mapping in SplitKit. We would sometimes start mapping values before all defs were known, and that could change a value from a simple 1-1 mapping to a multi-def mapping that requires ssa update. The new approach collects all defs and register assignments first without filling in any live intervals. Only when finish() is called, do we compute liveness and mapped values. At this time we know with certainty which values map to multiple values in a split range. This also has the advantage that we can compute live ranges based on the remaining uses after rematerializing at split points. The current implementation has many opportunities for compile time optimization. llvm-svn: 124765
-
- Feb 02, 2011
-
-
Devang Patel authored
llvm-svn: 124755
-
Devang Patel authored
llvm-svn: 124752
-
Duncan Sands authored
may be useful to understand "none", this is not the place for it. Tweak the fix to Normalize while there: the fix added in 123990 works correctly, but I like this way better. Finally, now that Triple understands some non-trivial environment values, teach the unittests about them. llvm-svn: 124720
-
Dan Gohman authored
llvm-svn: 124712
-
Evan Cheng authored
the load, then it may be legal to transform the load and store to integer load and store of the same width. This is done if the target specified the transformation as profitable. e.g. On arm, this can transform: vldr.32 s0, [] vstr.32 s0, [] to ldr r12, [] str r12, [] rdar://8944252 llvm-svn: 124708
-
Bob Wilson authored
llvm-svn: 124705
-
- Feb 01, 2011
-
-
Jay Foad authored
llvm-svn: 124659
-
Duncan Sands authored
pattern matching can also pattern match undef, creating a more uniform style. llvm-svn: 124657
-
Duncan Sands authored
llvm-svn: 124656
-
Duncan Sands authored
llvm-svn: 124655
-
Eric Christopher authored
llvm-svn: 124641
-
Evan Cheng authored
llvm-svn: 124639
-
- Jan 31, 2011
-
-
Devang Patel authored
llvm-svn: 124611
-
Oscar Fuentes authored
for dlopen/dlerror. Patch by arrowdodger! llvm-svn: 124590
-
NAKAMURA Takumi authored
llvm-svn: 124583
-