History log of /llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (Results 1626 – 1650 of 2094)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# cbd2a198 05-Sep-2012 Chad Rosier <mcrosier@apple.com>

[ms-inline asm] We only need one bit to represent the AsmDialect in the
MachineInstr.

llvm-svn: 163257


# 994f4040 05-Sep-2012 Chad Rosier <mcrosier@apple.com>

[ms-inline asm] Propagate the asm dialect into the MachineInstr representation.

llvm-svn: 163243


# 2db2353b 05-Sep-2012 Craig Topper <craig.topper@gmail.com>

Convert vextracti128/vextractf128 intrinsics to extract_subvector at DAG build time. Similar was previously done for vinserti128/vinsertf128. Add patterns for folding these extract_subvectors with st

Convert vextracti128/vextractf128 intrinsics to extract_subvector at DAG build time. Similar was previously done for vinserti128/vinsertf128. Add patterns for folding these extract_subvectors with stores.

llvm-svn: 163192

show more ...


# cf10446f 24-Aug-2012 Manman Ren <mren@apple.com>

BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle
the case of multiple edges from one block to another.

A simple example is a switch statement with multiple values to t

BranchProb: modify the definition of an edge in BranchProbabilityInfo to handle
the case of multiple edges from one block to another.

A simple example is a switch statement with multiple values to the same
destination. The definition of an edge is modified from a pair of blocks to
a pair of PredBlock and an index into the successors.

Also set the weight correctly when building SelectionDAG from LLVM IR,
especially when converting a Switch.
IntegersSubsetMapping is updated to calculate the weight for each cluster.

llvm-svn: 162572

show more ...


# 3fb2047f 22-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk>

Initialize SelectionDAGBuilder's Context in 'init', not in its constructor. The
SelectionDAG's 'init' has not been called when the SelectionDAGBuilder is
constructed (in SelectionDAGISel's constructo

Initialize SelectionDAGBuilder's Context in 'init', not in its constructor. The
SelectionDAG's 'init' has not been called when the SelectionDAGBuilder is
constructed (in SelectionDAGISel's constructor), so this was previously always
initialized with 0.

llvm-svn: 162333

show more ...


# 7d33c573 20-Aug-2012 Jakob Stoklund Olesen <stoklund@2pi.dk>

Don't add CFG edges for redundant conditional branches.

IR that hasn't been through SimplifyCFG can look like this:

br i1 %b, label %r, label %r

Make sure we don't create duplicate Machine CFG e

Don't add CFG edges for redundant conditional branches.

IR that hasn't been through SimplifyCFG can look like this:

br i1 %b, label %r, label %r

Make sure we don't create duplicate Machine CFG edges in this case.

Fix the machine code verifier to accept conditional branches with a
single CFG edge.

llvm-svn: 162230

show more ...


# 79a6b30d 17-Aug-2012 Eli Friedman <eli.friedman@gmail.com>

Make atomic load and store of pointers work. Tighten verification of atomic operations
so other unexpected operations don't slip through. Based on patch by Logan Chien.
PR11786/PR13186.

llvm-svn:

Make atomic load and store of pointers work. Tighten verification of atomic operations
so other unexpected operations don't slip through. Based on patch by Logan Chien.
PR11786/PR13186.

llvm-svn: 162146

show more ...


# 874886cd 03-Aug-2012 Bob Wilson <bob.wilson@apple.com>

Refactor and check "onlyReadsMemory" before optimizing builtins.

This patch is mostly just refactoring a bunch of copy-and-pasted code, but
it also adds a check that the call instructions are readno

Refactor and check "onlyReadsMemory" before optimizing builtins.

This patch is mostly just refactoring a bunch of copy-and-pasted code, but
it also adds a check that the call instructions are readnone or readonly.
That check was already present for sin, cos, sqrt, log2, and exp2 calls, but
it was missing for the rest of the builtins being handled in this code.

llvm-svn: 161282

show more ...


# 871701c6 03-Aug-2012 Bob Wilson <bob.wilson@apple.com>

Try to reduce the compile time impact of r161232.

The previous change caused fast isel to not attempt handling any calls to
builtin functions. That included things like "printf" and caused some
not

Try to reduce the compile time impact of r161232.

The previous change caused fast isel to not attempt handling any calls to
builtin functions. That included things like "printf" and caused some
noticable regressions in compile time. I wanted to avoid having fast isel
keep a separate list of functions that had to be kept in sync with what the
code in SelectionDAGBuilder.cpp was handling. I've resolved that here by
moving the list into TargetLibraryInfo. This is somewhat redundant in
SelectionDAGBuilder but it will ensure that we keep things consistent.

llvm-svn: 161263

show more ...


# fa59485b 03-Aug-2012 Bob Wilson <bob.wilson@apple.com>

Fix memcmp code-gen to honor -fno-builtin.

I noticed that SelectionDAGBuilder::visitCall was missing a check for memcmp
in TargetLibraryInfo, so that it would use custom code for memcmp calls even
w

Fix memcmp code-gen to honor -fno-builtin.

I noticed that SelectionDAGBuilder::visitCall was missing a check for memcmp
in TargetLibraryInfo, so that it would use custom code for memcmp calls even
with -fno-builtin. I also had to add a new -disable-simplify-libcalls option
to llc so that I could write a test for this.

llvm-svn: 161262

show more ...


# 0b3d7829 26-Jul-2012 Dan Gohman <gohman@apple.com>

Add a floor intrinsic.

llvm-svn: 160791


# aaf97359 19-Jul-2012 Galina Kistanova <gkistanova@gmail.com>

Fixed few warnings.

llvm-svn: 160493


# d163405d 19-Jul-2012 Bill Wendling <isanbard@gmail.com>

Remove tabs.

llvm-svn: 160475


# 2151497d 18-Jul-2012 Nuno Lopes <nunoplopes@sapo.pt>

ignore 'invoke @llvm.donothing', but still keep the edge to the continuation BB

llvm-svn: 160411


# 7ff588f9 04-Jul-2012 Stepan Dyatkovskiy <stpworld@narod.ru>

Reverted r156659, due to probable performance regressions, DenseMap should be used here:
IntegersSubsetMapping
- Replaced type of Items field from std::list with std::map. In neares future I'll t

Reverted r156659, due to probable performance regressions, DenseMap should be used here:
IntegersSubsetMapping
- Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement
if possible.

llvm-svn: 159703

show more ...


# 8b0c97e0 03-Jul-2012 Stepan Dyatkovskiy <stpworld@narod.ru>

Part of r159527. Splitted into series of patches and gone with fixed PR13256:
IntegersSubsetMapping
- Replaced type of Items field from std::list with std::map. In neares future I'll test it with

Part of r159527. Splitted into series of patches and gone with fixed PR13256:
IntegersSubsetMapping
- Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement
if possible.

llvm-svn: 159659

show more ...


# b65acc61 02-Jul-2012 Eric Christopher <echristo@apple.com>

Revert "IntRange:" as it appears to be breaking self hosting.

This reverts commit b2833d9dcba88c6f0520cad760619200adc0442c.

llvm-svn: 159618


# 39e90029 02-Jul-2012 Evan Cheng <evan.cheng@apple.com>

Target option DisableJumpTables is a gross hack. Move it to TargetLowering instead.

llvm-svn: 159611


# dd8638fb 02-Jul-2012 Eric Christopher <echristo@apple.com>

Turn an assert into an error to make it a bit more friendly.

Part of rdar://6880388 and rdar://11766377

llvm-svn: 159590


# 8b9ecca4 02-Jul-2012 Stepan Dyatkovskiy <stpworld@narod.ru>

IntRange:
- Changed isSingleNumber method behaviour. Now this flag is calculated on demand.
IntegersSubsetMapping
- Optimized diff operation.
- Replaced type of Items field from std::list with

IntRange:
- Changed isSingleNumber method behaviour. Now this flag is calculated on demand.
IntegersSubsetMapping
- Optimized diff operation.
- Replaced type of Items field from std::list with std::map.
- Added new methods:
bool isOverlapped(self &RHS)
void add(self& RHS, SuccessorClass *S)
void detachCase(self& NewMapping, SuccessorClass *Succ)
void removeCase(SuccessorClass *Succ)
SuccessorClass *findSuccessor(const IntTy& Val)
const IntTy* getCaseSingleNumber(SuccessorClass *Succ)
IntegersSubsetTest
- DiffTest: Added checks for successors.
SimplifyCFG
Updated SwitchInst usage (now it is case-ragnes compatible) for
- SimplifyEqualityComparisonWithOnlyPredecessor
- FoldValueComparisonIntoPredecessors

llvm-svn: 159527

show more ...


# ec9653b3 28-Jun-2012 Nuno Lopes <nunoplopes@sapo.pt>

add a new @llvm.donothing intrinsic that, well, does nothing, and teach CodeGen to ignore calls to it

llvm-svn: 159383


# e38859dc 28-Jun-2012 Bill Wendling <isanbard@gmail.com>

Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and
include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h.

The reasoning is because the DebugInfo module is simply an interface to

Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and
include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h.

The reasoning is because the DebugInfo module is simply an interface to the
debug info MDNodes and has nothing to do with analysis.

llvm-svn: 159312

show more ...


# b8650f10 22-Jun-2012 Lang Hames <lhames@gmail.com>

Rename -allow-excess-fp-precision flag to -fuse-fp-ops, and switch from a
boolean flag to an enum: { Fast, Standard, Strict } (default = Standard).

This option controls the creation by optimizations

Rename -allow-excess-fp-precision flag to -fuse-fp-ops, and switch from a
boolean flag to an enum: { Fast, Standard, Strict } (default = Standard).

This option controls the creation by optimizations of fused FP ops that store
intermediate results in higher precision than IEEE allows (E.g. FMAs). The
behavior of this option is intended to match the behaviour specified by a
soon-to-be-introduced frontend flag: '-ffuse-fp-ops'.

Fast mode - allows formation of fused FP ops whenever they're profitable.

Standard mode - allow fusion only for 'blessed' FP ops. At present the only
blessed op is the fmuladd intrinsic. In the future more blessed ops may be
added.

Strict mode - allow fusion only if/when it can be proven that the excess
precision won't effect the result.

Note: This option only controls formation of fused ops by the optimizers. Fused
operations that are explicitly requested (e.g. FMA via the llvm.fma.* intrinsic)
will always be honored, regardless of the value of this option.

Internally TargetOptions::AllowExcessFPPrecision has been replaced by
TargetOptions::AllowFPOpFusion.

llvm-svn: 158956

show more ...


# a59100cc 05-Jun-2012 Lang Hames <lhames@gmail.com>

Add a new intrinsic: llvm.fmuladd. This intrinsic represents a multiply-add
expression (a * b + c) that can be implemented as a fused multiply-add (fma)
if the target determines that this will be mor

Add a new intrinsic: llvm.fmuladd. This intrinsic represents a multiply-add
expression (a * b + c) that can be implemented as a fused multiply-add (fma)
if the target determines that this will be more efficient. This intrinsic
will be used to implement FP_CONTRACT support and an aggressive FMA formation
mode.

If your target has a fast FMA instruction you should override the
isFMAFasterThanMulAndAdd method in TargetLowering to return true.

llvm-svn: 158014

show more ...


# bde91766 02-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com>

Fix typos found by http://github.com/lyda/misspell-check

llvm-svn: 157885


1...<<61626364656667686970>>...84