History log of /llvm-project/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp (Results 426 – 450 of 549)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# fc00f7ea 14-Aug-2013 Matt Arsenault <Matthew.Arsenault@amd.com>

Use type helper functions instead of cast

llvm-svn: 188338


# feb34713 12-Aug-2013 Richard Sandiford <rsandifo@linux.vnet.ibm.com>

Fix big-endian handling of integer-to-vector bitcasts in InstCombine

These functions used to assume that the lsb of an integer corresponds
to vector element 0, whereas for big-endian it's the other

Fix big-endian handling of integer-to-vector bitcasts in InstCombine

These functions used to assume that the lsb of an integer corresponds
to vector element 0, whereas for big-endian it's the other way around:
the msb is in the first element and the lsb is in the last element.

Fixes MultiSource/Benchmarks/mediabench/gsm/toast for z.

llvm-svn: 188155

show more ...


Revision tags: llvmorg-3.3.1-rc1, llvmorg-3.3.0, llvmorg-3.3.0-rc3, llvmorg-3.3.0-rc2
# 14e915f7 10-May-2013 Benjamin Kramer <benny.kra@googlemail.com>

InstCombine: Don't claim to be able to evaluate any shl in a zexted type.

The shift amount may be larger than the type leading to undefined behavior.
Limit the transform to constant shift amounts. W

InstCombine: Don't claim to be able to evaluate any shl in a zexted type.

The shift amount may be larger than the type leading to undefined behavior.
Limit the transform to constant shift amounts. While there update the bits to
clear in the result which may enable additional optimizations.

PR15959.

llvm-svn: 181604

show more ...


Revision tags: llvmorg-3.3.0-rc1
# 8a51d8ea 26-Mar-2013 Ulrich Weigand <ulrich.weigand@de.ibm.com>

Make InstCombineCasts.cpp:OptimizeIntToFloatBitCast endian safe.

The OptimizeIntToFloatBitCast converts shift-truncate sequences
into extractelement operations. The computation of the element
index

Make InstCombineCasts.cpp:OptimizeIntToFloatBitCast endian safe.

The OptimizeIntToFloatBitCast converts shift-truncate sequences
into extractelement operations. The computation of the element
index to be used in the resulting operation is currently only
correct for little-endian targets.

This commit fixes the element index computation to be correct
for big-endian targets as well. If the target byte order is
unknown, the optimization cannot be performed at all.

llvm-svn: 178031

show more ...


# 95d2eb95 06-Mar-2013 Jim Grosbach <grosbach@apple.com>

InstCombine: Don't shrink allocas when combining with a bitcast.

When considering folding a bitcast of an alloca into the alloca itself,
make sure we don't shrink the amount of memory being allocate

InstCombine: Don't shrink allocas when combining with a bitcast.

When considering folding a bitcast of an alloca into the alloca itself,
make sure we don't shrink the amount of memory being allocated, or
things rapidly go sideways.

rdar://13324424

llvm-svn: 176547

show more ...


# 2e4df4f7 13-Feb-2013 Arnaud A. de Grandmaison <arnaud.adegm@gmail.com>

Fix comment

visitSExt is an adapted copy of the related visitZExt method, so adapt the comment accordingly.

llvm-svn: 175019


# 74a6da96 11-Feb-2013 Michael Ilseman <milseman@apple.com>

Optimization: bitcast (<1 x ...> insertelement ..., X, ...) to ... ==> bitcast X to ...

llvm-svn: 174905


# 944e0abf 05-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com>

InstCombine: Fix and simplify the inttoptr side too.

llvm-svn: 174438


# e4778758 05-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com>

InstCombine: Harden code to work with vectors of pointers and simplify it a bit.

Found by running instcombine on a fabricated test case for the constant folder.

llvm-svn: 174430


# 3529aa5f 24-Jan-2013 Craig Topper <craig.topper@gmail.com>

Remove trailing whitespace.

llvm-svn: 173322


# 80ea003c 14-Jan-2013 Nick Lewycky <nicholas@mxc.ca>

Fix typo in comment.

llvm-svn: 172460


# dbf0ca52 10-Jan-2013 Owen Anderson <resistor@mac.com>

Teach InstCombine to hoist FABS and FNEG through FPTRUNC instructions. The application of these operations commutes with the truncation, so we should prefer to do them in the smallest size we can, t

Teach InstCombine to hoist FABS and FNEG through FPTRUNC instructions. The application of these operations commutes with the truncation, so we should prefer to do them in the smallest size we can, to save register space, use smaller constant pool entries, etc.

llvm-svn: 172117

show more ...


# 9fb823bb 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com>

Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long

Move all of the header files which are involved in modelling the LLVM IR
into their new header subdirectory: include/llvm/IR. This matches the
directory structure of lib, and begins to correct a long standing point
of file layout clutter in LLVM.

There are still more header files to move here, but I wanted to handle
them in separate commits to make tracking what files make sense at each
layer easier.

The only really questionable files here are the target intrinsic
tablegen files. But that's a battle I'd rather not fight today.

I've updated both CMake and Makefile build systems (I think, and my
tests think, but I may have missed something).

I've also re-sorted the includes throughout the project. I'll be
committing updates to Clang, DragonEgg, and Polly momentarily.

llvm-svn: 171366

show more ...


# b6ad9822 30-Dec-2012 Nuno Lopes <nunoplopes@sapo.pt>

convert a bunch of callers from DataLayout::getIndexedOffset() to GEP::accumulateConstantOffset().
The later API is nicer than the former, and is correct regarding wrap-around offsets (if anyone care

convert a bunch of callers from DataLayout::getIndexedOffset() to GEP::accumulateConstantOffset().
The later API is nicer than the former, and is correct regarding wrap-around offsets (if anyone cares).
There are a few more places left with duplicated code, which I'll remove soon.

llvm-svn: 171259

show more ...


Revision tags: llvmorg-3.2.0, llvmorg-3.2.0-rc3
# ed0881b2 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com>

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module

Use the new script to sort the includes of every file under lib.

Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.

Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]

llvm-svn: 169131

show more ...


Revision tags: llvmorg-3.2.0-rc2, llvmorg-3.2.0-rc1
# 5da3f051 01-Nov-2012 Chandler Carruth <chandlerc@gmail.com>

Revert the majority of the next patch in the address space series:

r165941: Resubmit the changes to llvm core to update the functions to
support different pointer sizes on a per address spa

Revert the majority of the next patch in the address space series:

r165941: Resubmit the changes to llvm core to update the functions to
support different pointer sizes on a per address space basis.

Despite this commit log, this change primarily changed stuff outside of
VMCore, and those changes do not carry any tests for correctness (or
even plausibility), and we have consistently found questionable or flat
out incorrect cases in these changes. Most of them are probably correct,
but we need to devise a system that makes it more clear when we have
handled the address space concerns correctly, and ideally each pass that
gets updated would receive an accompanying test case that exercises that
pass specificaly w.r.t. alternate address spaces.

However, from this commit, I have retained the new C API entry points.
Those were an orthogonal change that probably should have been split
apart, but they seem entirely good.

In several places the changes were very obvious cleanups with no actual
multiple address space code added; these I have not reverted when
I spotted them.

In a few other places there were merge conflicts due to a cleaner
solution being implemented later, often not using address spaces at all.
In those cases, I've preserved the new code which isn't address space
dependent.

This is part of my ongoing effort to clean out the partial address space
code which carries high risk and low test coverage, and not likely to be
finished before the 3.2 release looms closer. Duncan and I would both
like to see the above issues addressed before we return to these
changes.

llvm-svn: 167222

show more ...


# 7ec5085e 01-Nov-2012 Chandler Carruth <chandlerc@gmail.com>

Revert the series of commits starting with r166578 which introduced the
getIntPtrType support for multiple address spaces via a pointer type,
and also introduced a crasher bug in the constant folder

Revert the series of commits starting with r166578 which introduced the
getIntPtrType support for multiple address spaces via a pointer type,
and also introduced a crasher bug in the constant folder reported in
PR14233.

These commits also contained several problems that should really be
addressed before they are re-committed. I have avoided reverting various
cleanups to the DataLayout APIs that are reasonable to have moving
forward in order to reduce the amount of churn, and minimize the number
of commits that were reverted. I've also manually updated merge
conflicts and manually arranged for the getIntPtrType function to stay
in DataLayout and to be defined in a plausible way after this revert.

Thanks to Duncan for working through this exact strategy with me, and
Nick Lewycky for tracking down the really annoying crasher this
triggered. (Test case to follow in its own commit.)

After discussing with Duncan extensively, and based on a note from
Micah, I'm going to continue to back out some more of the more
problematic patches in this series in order to ensure we go into the
LLVM 3.2 branch with a reasonable story here. I'll send a note to
llvmdev explaining what's going on and why.

Summary of reverted revisions:

r166634: Fix a compiler warning with an unused variable.
r166607: Add some cleanup to the DataLayout changes requested by
Chandler.
r166596: Revert "Back out r166591, not sure why this made it through
since I cancelled the command. Bleh, sorry about this!
r166591: Delete a directory that wasn't supposed to be checked in yet.
r166578: Add in support for getIntPtrType to get the pointer type based
on the address space.
llvm-svn: 167221

show more ...


# e2395dc2 30-Oct-2012 Duncan Sands <baldrick@free.fr>

Fix isEliminableCastPair to work correctly in the presence of pointers
with different sizes.

llvm-svn: 167018


# 12d91278 24-Oct-2012 Micah Villmow <villmow@gmail.com>

Add in support for getIntPtrType to get the pointer type based on the address space.
This checkin also adds in some tests that utilize these paths and updates some of the
clients.

llvm-svn: 166578


# 4bb926d9 15-Oct-2012 Micah Villmow <villmow@gmail.com>

Resubmit the changes to llvm core to update the functions to support different pointer sizes on a per address space basis.

llvm-svn: 165941


# 0c61134d 11-Oct-2012 Micah Villmow <villmow@gmail.com>

Revert 165732 for further review.

llvm-svn: 165747


# 08318973 11-Oct-2012 Micah Villmow <villmow@gmail.com>

Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly.

llvm-svn: 165726


# cdfe20b9 08-Oct-2012 Micah Villmow <villmow@gmail.com>

Move TargetData to DataLayout.

llvm-svn: 165402


# 91ce36c9 27-Sep-2012 Sylvestre Ledru <sylvestre@debian.org>

Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767

llvm-svn: 164768


# 721cffd5 27-Sep-2012 Sylvestre Ledru <sylvestre@debian.org>

Fix a typo 'iff' => 'if'

llvm-svn: 164767


1...<<11121314151617181920>>...22